Android:检测其他活动何时启动(或您的活动失去焦点)

时间:2009-12-03 23:45:00

标签: android

就像标题所说,我需要检测我的应用程序何时失去焦点,因为启动了另一个应用程序(电话呼入,或用户点击主页等)。

覆盖Activity.OnStop不起作用,因为即使在我的应用程序中切换活动时也会调用它。

3 个答案:

答案 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

,请参阅此页面