12

查看了 android 文档,似乎我们无法知道应用程序何时关闭。它是由用户显式执行的,还是由操作系统自动执行的。

以下是仅在模拟场景中可用的onTerminate()文档。

public void onTerminate()

自:API 级别 1

此方法用于模拟过程环境。它永远不会在生产 Android 设备上调用,在这些设备上,只需杀死进程即可删除它们;这样做时不会执行任何用户代码(包括此回调)。

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

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

4

3 回答 3

5

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

在我的应用程序中,我使用Activity.onDestroy()来进行我需要的清理工作。我有几项活动——onDestroy()每一项都有。

这是我最接近于做我需要做的事情 - 它实际上工作得很好。

于 2011-09-29T17:55:03.440 回答
3

查看了 android 文档,似乎我们无法知道应用程序何时关闭。它是由用户显式执行的,还是由操作系统自动执行的。

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

当用户关闭应用程序时,有没有人有任何其他方法来报告。

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

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

正如@Aleks G 所指出的,您可以覆盖各种生命周期方法,以了解用户对活动所做的事情。onStop()表示其他东西接管了前台输入,并且您当前的活动不再可见。onUserLeaveHint()表示用户按下了 HOME。等等。但这些是在活动级别,而不是应用程序级别。

于 2011-09-29T18:00:12.657 回答
1

在您的应用程序中创建一个 BaseActivity 扩展 Activity 并扩展此 BaseActivity 而不是 Activity。在这个 BaseActivity 中重写 onDestroy() 方法。像

 @Override
 protected void onDestroy() {
      super.onDestroy();
     //Write the code that you want to do if the application terminates
 }
于 2015-08-04T08:56:58.310 回答