当Android应用程序在后台运行时捕获

man*_*el 11 android

我需要Android的帮助.这是应用程序进入后台时需要捕获事件的问题.(例如家庭被按下或任何其他动作推动我的应用程序在背景中)目前我能够抓住onPause活动

@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
}
Run Code Online (Sandbox Code Playgroud)

应用程序级别的某些事件是否有任何覆盖?

Nan*_*nne 2

从您的评论来看,您似乎想知道程序何时从后台返回,而不是何时进入后台。

你可以用onResume它。另请参阅活动生命周期。您可以看到“活动来到前台”这句话,这是我从您的评论中收集到的您想要的东西。

注意:您的 Activity 将在第一次启动时调用onResume,因此您可能需要在 onPause 中设置一个布尔值,以向您的应用程序表明它实际上已进入后台。

  • 感谢 Nanne 的帮助,我通过添加一个静态变量来解决这个问题,并在每个活动(有 10 个)上覆盖 onResume/onBackPressed 和 onClick,为每个活动上的每个按钮添加一些代码来测试 onResume 是从我的操作还是从应用程序 onResume 调用。我仍然认为如果 android 有应用程序 onPause/onResume 应该有简单的方法来做到这一点 (7认同)
  • 我怎么知道应用程序进入睡眠状态,而不是活动,因为当用户使用应用程序时,他会经历诸如 Activity1 -> Activity2 -> Activity3 -> Activity4 -> Activity3 -> Activity4 -> acticity5 -> acticity4 -> acticity3 等活动-> acticity2 -> acticity3 -> 现在他按下 Home 键,整个应用程序都在后台。我怎么知道在 Activity3 捕获 onPause 之后,它不是因为 Activity4 获得焦点(onResume),而是整个应用程序处于后台。 (2认同)