我尝试使通知必须只在应用程序UI 不可见时才能工作。我试图存储偏好,它写在Activity
的onStart()
和onStop()
中。但有时,它不能工作,因为在没有调用MyActivity.onStop()
的情况下,另一个应用程序变得可见。
我可以使用什么其他方法来确定服务,如果MyApplication现在是可见的?或者MyActivity?
如果你已经有代码来跟踪你的应用程序UI的状态,你可能只需要把代码放在onPause()
和onResume()
中,而不是onStart()
和onStop()
,就可以让它工作了。
有可能UI不可见,或部分隐藏,甚至在onStop()
被调用之前…如你所知。
请看这里的Android Activity生命周期图:
http://developer.android.com/images/activity_lifecycle.png,注意描述:
活动的前台生存期发生在调用
onResume()
,直到对应的onPause()
调用。在此期间该活动位于所有其他活动的前面,并与之交互用户。活动可以频繁地在恢复和暂停之间切换状态,比如设备什么时候进入睡眠,什么时候有活动Result被交付,当一个新的意图被交付时——所以代码在这些方法应该是相当轻量级的。