就像标题所说,我需要检测我的应用程序何时失去焦点,因为启动了另一个应用程序(电话呼入,或用户点击主页等)。
覆盖Activity.OnStop不起作用,因为即使在我的应用程序中切换活动时也会调用它。
答案 0 :(得分:5)
我相信你可以使用:
onWindowsFocusChanged(boolean hasFocus)
来自你的活动。
答案 1 :(得分:3)
AFAIK Android不提供此功能。您可以自己跟踪(例如,如果您的某个活动中的onStop()
被调用,并且您的其他活动中的onStart()
未在X时间段内被调用,可能是某个其他应用的活动在前台)。
答案 2 :(得分:2)
随着ICS向上,这可能是可能的。
这取自android网站:
要在用户退出用户界面时收到通知,请执行 Activity类中的onTrimMemory()回调。你应该用 这个方法可以监听TRIM_MEMORY_UI_HIDDEN级别 表示您的用户界面现在已隐藏,您应该可以免费使用 只有您的UI使用的资源。
请注意,您的应用会收到onTrimMemory()回调 TRIM_MEMORY_UI_HIDDEN仅适用于您应用的所有UI组件 进程对用户隐藏。
有关详细信息http://developer.android.com/training/articles/memory.html
,请参阅此页面