是否有可能isFinishing()在onPause()中返回false但在onStop()中返回true?

时间:2014-08-27 18:18:28

标签: android

我正在阅读“开始Android游戏,第2版”这本书。

第129页说

'在onPause()中,我们只是暂停我们的主循环线程,如果 Activity.isFinishing()返回true,我们还将任何状态保存到磁盘 想坚持下去。'

并且作者在onStop()方法中什么也没做。

但问题是如果isFinishing()在onPause()中返回false但在onStop()中返回true,如果我们不处理onStop()方法,我们将丢失未保存的数据。

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

如果isFinishing()中的onPause返回false,则onStop(以及onDestroy)也会返回false。

我想如果您在yourActivity.finish()方法中调用onPause,则可能会出现例外情况。如果您这样做,isFinishing()将在您致电yourActivity.finish()之前返回false,之后将返回true。

答案 1 :(得分:0)

如果调用onStop(),也会调用onPause,而onDestroy()将同时调用它们。

这里有一个很棒的图表

http://developer.android.com/reference/android/app/Activity.html

说明了Android活动生命周期。