【问题标题】:Detect the pause of the application (not of an Activity)检测应用程序的暂停(不是 Activity)
【发布时间】:2017-03-01 09:01:19
【问题描述】:

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

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

提前致谢

【问题讨论】:

    标签: java android android-activity


    【解决方案1】:

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

    注意不要做任何需要很长时间的事情。 OnPause 方法必须在下一个活动开始或恢复之前完成。因此,如果用户按下主页按钮,您的 OnPause 必须在用户看到启动器之前完成。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        派对迟到了……

        您可以实现Application.ActivityLifecycleCallbacks 接口并存储正在暂停和恢复的活动。新活动在旧活动暂停之前恢复,所以基本上,如果您在onPaused 上获得的活动与上次在onResume 上记录的活动相同,您的应用程序将进入后台。如果onPause 收到的活动与您在onResume 上记录的上一个活动不同,则表示用户正在导航到您应用中的另一个活动。

        【讨论】:

          【解决方案4】:

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-04-13
            相关资源
            最近更新 更多