我想检测我的应用程序何时暂停(例如,当用户按下主页按钮或启动另一个应用程序时)。
某些应用程序检测到这种情况并显示如下通知:“应用程序....正在后台运行”。我需要做同样的事情,但是要在数据库中保存一些对象。
提前致谢
答案 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();
}