如何钩取Android应用程序的生命周期?

3

Android通过Application.ActivityLifecycleCallbacks支持钩入Activity生命周期,但我找不到一种方便的方式来钩入Application。为什么没有类似于Application.ActivityLifecycleCallbacks的接口用于Application生命周期呢?

我想知道一个应用程序是否在后台/前台,而我不想手动计数(使用Application.ActivityLifecycleCallbacks是可行的)。

我正在开发一个Android库,其中一个用例需要知道包含该库的应用程序是否处于后台/前台。

我发现在android.support.test.runner.lifecycle包中有一个ApplicationLifecycleCallback接口(仅供测试使用)。为什么不能在android.app包中公开类似于Application.ActivityLifecycleCallbacks的东西呢?

如何实现我的用例?你会如何实现它?

任何提示/想法/解决方法都将不胜感激。谢谢!

1个回答

7

我希望知道一个应用程序是在后台还是前台运行,而且不想手动计数(使用Application.ActivityLifecycleCallbacks可行)。

如果您是这样定义"应用程序生命周期"的话,建议使用架构组件中的ProcessLifecycleOwner


该内容与程序设计相关,以下是翻译的文本:你真快啊;-)每次我开始写答案,你就更快了。干得好 :) - Emanuel
1
你真快啊 ;-)@EmanuelSeibold 非常正确@CommonsWare 我不知道 ProcessLifecycleOwner。非常感谢! - Guardiola31337
2
@Guardiola31337:这是相当新的,因为Architecture Components最初是在2017年5月发布的。目前,它们仍处于alpha状态,所以可能会有所不同。顺便说一下,这里有一个示例应用程序,演示了它的使用。 - CommonsWare

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接