当我重新安装我的应用程序而不首先删除它时会发生什么?
我正在寻找的是,当我的应用程序当前正在运行时,我重新安装,
不调用Activity.OnDestroy()。
我必须在应用程序关闭之前做一些事情。
答案 0 :(得分:1)
使用onPause()
。根据{{3}},onPause()
是唯一可以调用保证的方法。后者可能不会调用onStop()
和onDestroy()
。
然而,AFAIK没有办法告诉为什么您的应用程序正在暂停(例如重新安装)。检测重新安装的唯一方法是:
SharedPreferences
)。如果存在差异,请在升级应用时执行您需要执行的操作,并覆盖SharedPreferences
中的先前版本代码。另请注意,这需要版本代码在重新安装之间碰撞。如果您只是使用具有相同版本代码的软件包进行adb install -r
,则无法分辨。
答案 1 :(得分:0)
读取生命周期的描述 - onDestroy()不能保证被调用 - 唯一可靠的回调是onPause() - 所以你必须在那里做你的事情。