当我重新安装我的android应用程序时会发生什么

问题描述:

当我重新安装我的应用程序而不先删除它时会发生什么?当我重新安装我的android应用程序时会发生什么

我正在寻找的是,当我的应用程序正在运行,和我做了重新安装后,

Activity.OnDestroy()没有被调用。

我必须在应用程序关闭之前做些事情。

使用onPause()。根据this,onPause()是唯一的方法是保证被调用。后者可能不会被调用onStop()onDestroy()

但是,AFAIK无法告诉为什么您的应用程序正在暂停(例如重新安装)。检测重新安装的唯一方法是这样的:

  1. 使用SharedPreferences来存储您的应用程序的版本代码。
  2. 当应用程序启动时,根据当前版本代码检查存储的版本代码(后者使用PackageManager)。如果存在差异,请在升级应用程序时执行您需要执行的操作,并覆盖SharedPreferences中的以前的版本代码。

另请注意,这需要版本代码在重新安装之间碰撞。如果您只是在使用包含相同版本代码的软件包adb install -r,则无法分辨。

+0

我正在添加一个标志,以了解我的应用是否会导致onPause。所以我消除了大部分或甚至所有情况 – piojo

+0

这可能不是一个好主意。您的应用也可以通过以下方式进行暂停:电话呼叫,用户点击/回家,用户点击通知等。 – Felix

阅读生命周期描述 - onDestroy()不保证被调用 - 唯一可靠的回调是onPause() - 所以你必须在那里做你的事情。