【发布时间】:2017-03-01 09:01:19
【问题描述】:
我想检测我的应用程序何时暂停(例如,当用户按下主页按钮或启动另一个应用程序时)。
一些应用程序检测到这种情况并显示如下通知:“应用程序....正在后台运行”。我需要做同样的事情,但要在数据库中保存一些对象。
提前致谢
【问题讨论】:
标签: java android android-activity
我想检测我的应用程序何时暂停(例如,当用户按下主页按钮或启动另一个应用程序时)。
一些应用程序检测到这种情况并显示如下通知:“应用程序....正在后台运行”。我需要做同样的事情,但要在数据库中保存一些对象。
提前致谢
【问题讨论】:
标签: java android android-activity
活动生命周期中的 OnPause 是您的答案。当您的应用程序暂停时,您的活动也会暂停。
注意不要做任何需要很长时间的事情。 OnPause 方法必须在下一个活动开始或恢复之前完成。因此,如果用户按下主页按钮,您的 OnPause 必须在用户看到启动器之前完成。
【讨论】:
您应该在活动级别处理它。请阅读以下内容,尤其是第一个答案中的 cmets:Android: How to handle that the application is minimized by HOME button
【讨论】:
派对迟到了……
您可以实现Application.ActivityLifecycleCallbacks 接口并存储正在暂停和恢复的活动。新活动在旧活动暂停之前恢复,所以基本上,如果您在onPaused 上获得的活动与上次在onResume 上记录的活动相同,您的应用程序将进入后台。如果onPause 收到的活动与您在onResume 上记录的上一个活动不同,则表示用户正在导航到您应用中的另一个活动。
【讨论】:
只需在应用程序的所有活动中覆盖以下方法即可。
protected void onPause() {
//do your work
super.onPause();
}
【讨论】: