为什么onSaveInstanceState在onPause之后调用

时间:2014-11-06 15:16:12

标签: android android-activity

在我的Android应用程序中,当应用程序进入后台时,始终会调用onSaveInstanceState()。我的理解是,当操作系统终止应用程序时,将调用onSaveInstanceState()。考虑到这一点,我设计了一些逻辑。但是,在实施过程中注意到这种奇怪的行为。有没有办法区分onSaveInstanceState(),它在操作系统杀死应用程序或在正常暂停时被调用时被调用。

3 个答案:

答案 0 :(得分:1)

根据文件:

  

可能被杀之前调用此方法,以便在将来某个时间返回时可以恢复其状态。

换句话说,在OS杀死活动之前不会立即调用该方法。当活动进入后台并且稍后可能会恢复时,会调用它。在活动进入后台之前立即保存状态可以让系统更灵活地杀死应用程序......一旦确定应用程序被杀死,它就可以立即执行(不必担心)关于在可以执行此操作之前调用应用程序的onSaveInstanceState()方法。)

答案 1 :(得分:0)

检查文档:http://developer.android.com/reference/android/app/Activity.html#onSaveInstanceState(android.os.Bundle)

  

无论是在onPause()

之前还是之后都无法保证

答案 2 :(得分:0)

onSavedInstanceState()在活动暂停之前被调用(它不可见)。如果活动被故意破坏(例如:用户按下退格键),则不会调用onSavedInstanceState()。 onSavedInstanceState()的主要作用是保留视图。

简短回答:不,你不能。

如需了解更多信息,请阅读:this。它也可用于片段。