Stackoveflow!
我有一个带有sticky
后台服务和可见部分的应用程序,由几个活动组成。
我需要跟踪可见部分的开始和停止(所有活动)。 例如:
如果我使用Activity
。 onCreate
和onDestroy
,或onStart
和onStop
,我会收到与单个活动的生命周期相关的事件。我也得到与屏幕旋转相关的事件。
我也不能使用Application
。 onCreate
或onTerminate
因为服务在后台运行而不会触发。
我需要跟踪整个应用程序的实际启动和停止,除了服务。
答案 0 :(得分:1)
请参阅:http://developer.android.com/guide/components/bound-services.html
当最后一个客户端从服务解除绑定时,系统会销毁 服务(除非服务也是由startService()启动的)。
因此,每个Activity
应该bind()
服务onCreate
,以及unbind()
/ onStop
onDestroy
现在要解决方向更改问题,您可以在isFinishing
/ onStop
回调中检查onDestory
(见:How to distinguish between orientation change and leaving application android)
并在onSaveInstanceState
回调中添加了一些标志,以便在下面的onCreate
中检查是否存在该标志,并相应地采取行动(刷新绑定,或者避免调用{{1}再次)