你可以跟踪Android应用程序何时被终止?

时间:2011-09-29 17:47:59

标签: android process terminate process-management

看看android文档,我们似乎无法知道应用何时关闭。无论是由用户明确指出还是由操作系统自动生成。

以下是仅在模拟方案中可用的onTerminate() documentation

public void onTerminate()
  

自:API Level 1

     

此方法用于模拟过程   环境。永远不会在生产Android设备上调用它,   通过简单地杀死进程来删除进程;没有用户代码   (包括此回调)在执行此操作时执行。

当用户关闭应用程序时,是否有任何其他方法可以报告?

我们需要从试点/可用性角度了解我们是否需要在我们未来的生产应用程序中加入其他功能。

3 个答案:

答案 0 :(得分:5)

不确定这是否会对你有帮助......

在我的应用中,我正在使用Activity.onDestroy()进行我需要的清理工作。我有几个活动 - 每个活动都有onDestroy()

这是我最接近我所需要的 - 而且它实际上运作得很好。

答案 1 :(得分:3)

  

看看android文档,我们似乎无法知道应用何时关闭。无论是由用户明确指出还是由操作系统自动生成。

用户不会在Android上关闭应用程序。

  

当用户关闭应用程序时,是否有任何其他方法可以向您报告。

用户不会在Android上关闭应用程序。

在这方面,Android的行为很像Web浏览器。用户不会在Web浏览器中关闭Web应用程序。他们可能会关闭浏览器。他们可能会关闭一个标签。他们可能会按下主页按钮并导航到其他站点/应用程序。他们可能会选择书签并导航到其他站点/应用程序。他们可能会将文档拖入浏览器并进行查看。他们可能会双击桌面图标并查看它。他们可能会点击当前查看的网站/应用程序中的一些“注销”链接。这些中的任何一个都会导致用户离开他们所在的任何网站/应用程序,但它们都不会被解释为“关闭”网站/应用程序,就像点击桌面操作系统窗口上的关闭按钮一样作为“关闭”桌面应用程序。

正如@Aleks G所说,您可以覆盖各种生命周期方法,以了解用户对活动的处理方式。 onStop()表示其他内容接管前景输入,您当前的活动不再可见。 onUserLeaveHint()表示用户按下了HOME。等等。但那些是活动级别,而不是应用程序级别。

答案 2 :(得分:1)

使BaseActivity扩展Application中的Activity并扩展此BaseActivity而不是Activity。 在此BaseActivity中覆盖onDestroy()方法。 喜欢

 @Override
 protected void onDestroy() {
      super.onDestroy();
     //Write the code that you want to do if the application terminates
 }