2017-08-28 87 views
2

Android支持通过Application.ActivityLifecycleCallbacks挂钩到Activity生命周期,但我找不到方法轻松将挂钩到Application之一。为什么Application生命周期中没有类似的接口?如何挂钩到Android应用程序生命周期?

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

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

我看到android.support.test.runner.lifecycle包中有一个ApplicationLifecycleCallback接口可用(仅用于测试)。为什么不在android.app包内暴露类似Application.ActivityLifecycleCallbacks的东西?

如何完成我的用例?你将如何实现它?

任何提示/想法/解决方法将是非常值得欢迎的。非常感谢!

回答

4

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

如果这就是您如何从架构组件定义“Application生命周期”,use ProcessLifecycleOwner

+0

该死的,你很快;-)每次我开始写你的答案更快。做得好:) –

+1

>该死的,你很快;-) @EmanuelSeibold非常真实 @CommonsWare不知道'ProcessLifecycleOwner'。非常感谢! – Guardiola31337

+2

@ Guardiola31337:由于架构组件于2017年5月首次发布,因此非常新颖。目前,它们仍处于alpha状态,所以YMMV。 FWIW,[这里是一个示例应用程序](https://github.com/commonsguy/cw-androidarch/tree/v0.2/General/ProcessLifecycle)展示其用法。 – CommonsWare