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

Xan*_*der 22 java android ondestroy activity-finish

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

Com*_*are 46

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

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

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

  • 您的进程可以在两者之间终止,finish()并且onDestroy()出于与触发调用的任何原因无关的原因finish()

  • 设备制造商或ROM莫德可以引入这样会破坏之间的连接部分扭曲变化finish()onDestroy()

  • 该电池能够在两者之间走死finish()onDestroy()

  • 等等.

第三,finish()打电话 onDestroy().你可以通过阅读源代码来判断.finish()通常会触发一个电话onDestroy().

一般来说,finish()最终会onDestroy()被调用.

  • @Jenix:如果进程没有终止,并且你没有触发崩溃(未处理的异常),那么完成一个活动将导致在该活动上调用`onDestroy()`. (3认同)

Ani*_*kur 6

不,你不能确定!

调用finish()通常会根据Activity生命周期触发onDestroy(),但您不能依赖它.特别是不用于保存您的数据.文件明确说明

do not count on this method being called as a place for saving data! 
Run Code Online (Sandbox Code Playgroud)