onDestroy()未被调用 - 重新访问,因为需要删除所有本地存储的数据

时间:2017-12-15 18:33:53

标签: android android-lifecycle

所以我喜欢编码,因为你每天都在学习新东西。我一直在开发Android很长一段时间,并且总是假设onDestroy()一直被调用。好的文档说,不能保证onDestory()会被调用。

所以我的问题是这个。如果我要求在关闭应用程序时不存在本地保存的数据,我该如何处理。我对onDestroy()进行编码,当你点击后退按钮进入Android主屏幕时,它会被调用。

但是,如果我点击Home按钮然后点击Overview然后点击全部关闭/全部清除,onDestroy()就不会被调用,我无法确保所有本地数据都被删除了?

2 个答案:

答案 0 :(得分:1)

  

如果我要求在应用关闭时不存在本地保存的数据,我该如何解决?

首先没有本地保存的数据。把它全部记在内存中。

答案 1 :(得分:1)

<强>已更新

正如评论中所指出的,你应该避免重写onStop,所以我找到了另一种方法,当按下HomeKey时,在onPause(注意这一点)之前调用此方法

@Override
protected void onUserLeaveHint() {
    finish();
    super.onUserLeaveHint();
}

在Android 8.1上测试

注意:正如文档所说,当用户按下Home键时会调用它,但是当你接到一个电话时,即使活动调用onPause,也不会调用此方法。