26

简单的问题:你能确定finish()会打电话onDestroy()吗?我还没有找到任何确认。

4

2 回答 2

50

简单的问题:你能确定finish() 会调用onDestroy() 吗?

首先,这个答案假设您指的是 Android 的Activity类及其finish()方法和onDestroy()生命周期方法。

其次,这取决于您对“确定”的定义:

  • 您的进程可能会在finish()和之间终止onDestroy(),原因与触发调用的原因无关finish()

  • 设备制造商或 ROM 修改者可能会引入一些会破坏finish()onDestroy()

  • 电池可能会在两者之间finish()耗尽onDestroy()

  • 等等。

三、finish() onDestroy()。您可以通过阅读源代码来判断这一点。finish()通常会触发onDestroy().

一般来说,finish()最终会导致onDestroy()被调用。

于 2013-11-10T16:21:50.477 回答
6

不,你不能确定!

调用 finish() 通常会根据 Activity 生命周期触发 onDestroy() 但您不能依赖它。特别不是为了保存您的数据。文件清楚地说

do not count on this method being called as a place for saving data! 
于 2013-11-10T16:40:19.043 回答