检测Android应用程序是否在后台运行

问题描述:

我想检查我的应用程序是否在后台模式下运行。检测Android应用程序是否在后台运行

问题是我有很多活动(列表活动,地图活动等)。最初,我尝试在生命周期的简历和暂停(或onUserLeaveHint)方法中将静态布尔值设置为true或false,并以此方式工作。但是这显然不能工作,因为当我从一个活动转移到另一个时,前一个活动暂停。

此外,我在这里阅读了stackoverflow,getRunningTasks()应该只用于调试目的。我做了大量的研究,但我找不到解决方案。我想要做的就是能够检测应用是否在背景上运行。任何人都可以向我提出一个方法,或者表达我的想法,我该怎么做?

您可以尝试相同的机制(布尔属性),但应用程序端而不是活动端。创建一个扩展Application的类,在清单文件<application android:name=YourClassApp>下声明它。

编辑:我想你知道activities不适用于后台处理,如果不是你应该看看Services

我不知道这是否会帮助,但你可以使用

getApplicaton().registerActivityLifecycleCallbacks(yourClass);

要了解您的活动是如何显示在FG鸟瞰。 (对于年龄较大的S/W你can use this


如果你的应用程序有一个服务,你可以拥有它访问一个静态变量的静态的get/set。不要在活动中这样做,它会导致内存泄漏。

但实际上,如果您的应用程序正在运行或没有运行,则没有完整的跟踪方法。