2017-08-28 49 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