Android:将完成()总是调用onDestroy()?

时间:2013-11-10 16:15:49

标签: java android ondestroy activity-finish

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

2 个答案:

答案 0 :(得分:45)

  

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

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

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

  • 您的流程可能会在finish()onDestroy()之间终止,原因与触发finish()

  • 的任何内容无关
  • 设备制造商或ROM修改器可能会引入一些棘手的更改,这会打破finish()onDestroy()之间的联系

  • 电池可能会在finish()onDestroy()

  • 之间消失

第三,finish()致电 onDestroy()。你可以通过阅读the source code来说明这一点。 finish()通常会触发onDestroy()

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

答案 1 :(得分:6)

不,你不能确定!

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

do not count on this method being called as a place for saving data!