简单问题:您能确定finish()
会致电onDestroy()
吗?我还没有找到任何确认。
答案 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!