检测应用程序的暂停(不是活动)

时间:2011-08-19 11:29:14

标签: java android android-activity

我想检测我的应用程序何时暂停(例如,当用户按下主页按钮或启动另一个应用程序时)。

某些应用程序检测到这种情况并显示如下通知:“应用程序....正在后台运行”。我需要做同样的事情,但是要在数据库中保存一些对象。

提前致谢

4 个答案:

答案 0 :(得分:1)

活动生命周期中的OnPause是您的答案。当您的应用程序暂停时,您的活动也是如此。

小心不要做任何需要花费很长时间的事情。 OnPause方法必须在下一个活动开始或恢复之前完成。因此,如果用户按下主页按钮,则必须先完成OnPause,然后用户才能看到启动器。

答案 1 :(得分:0)

您应该在活动级别处理它。请阅读以下内容,尤其是第一个答案中的评论:Android: How to handle that the application is minimized by HOME button

答案 2 :(得分:0)

晚会......

您可以实现Application.ActivityLifecycleCallbacks接口并存储正在暂停和恢复的活动。在旧的活动暂停之前恢复新活动,所以基本上,如果您onPaused上的活动与最后一次记录在onResume上的活动相同,那么您的应用就会转到后台。如果onPause收到与您在onResume上记录的最后一项活动不同的活动,则表示该用户正在导航到您应用中的其他活动。

答案 3 :(得分:-2)

只需在应用程序的所有活动中覆盖以下方法。

protected void onPause() {     
  //do your work
  super.onPause();          
}