当我通过Intent BundleExtra创建它时,我将一个布尔值传递给我的Activity。现在查看activity lifecycle,如果我的活动停止(onStop
),则其他应用程序需要内存,以便应用程序进程终止,然后用户导航到活动(onCreate
)。最后一个onCreate是否包含我通过的原始布尔值?我会假设如果我想要保存布尔值,我需要将它保存在OnSaveInstanceState
,对吗?如果一个活动停止,然后重新创建getIntent()
回答
我会使用的onPause()因为这个原因(从文档)
注意,它保存的onPause持久性数据是很重要的()的onSaveInstanceState(捆绑),而不是 因为后者不属于 生命周期回调,因此在其文档中描述的 在每种情况下都不会被调用。
然后再读回onCreate()
例如,从数据库或其他一些资源,你保存它
所以这取决于如何重要的是布尔值,你会使用你想要保存机制。对于持续状态:http://developer.android.com/reference/android/app/Activity.html#SavingPersistentState
而对于UI状态,如简单的文章,选择使用onSaveInstanceState
喜欢这里描述:Saving Android Activity state using Save Instance State
作为总结:当进程杀死布尔=不见了如果不保存 :)
马uno V.是正确的,在你的情况下,你必须使用onPause()
事实上,onSaveInstanceState(Bundle bundle)旨在保存当前实例中的状态。所以,当你的应用程序被杀害,保存的包太
您可以使用SharedPreferences保存您的布尔:
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
sharedPreferences.edit().putBoolean("hiBoolean", booleanValue).commit();
和检索它在你的onCreate:
Boolean hiBoolean = sharedPreferences.getBoolean("hiBoolean", true);
调用onCreate的位置。这是不正确的。当托管您的应用程序的进程将被终止时,“保存实例状态包”将由ActivityManager保留,并在用户导航到您的应用程序时传回。 Android将创建一个进程并实例化应用程序,然后创建位于堆栈顶部的活动,然后传入上次保存的实例状态包。早些时候,这个软件包无法在设备重启时保存,但Android一天天变得非常棒,并开始sdk级别21,该软件包在重新启动时也保留下来。 –
其实,当你的活动被重新创建,原始意图仍将被使用。 getIntent()
将返回与第一次创建时相同的意图。但是,如果您在重新创建活动时要保留其他数据,则需要使用saveInstanceState()
进行保存。您可以通过简单地旋转设备来运行一个活动来验证这一点,因为它会被销毁并以相同的意图重新创建。有关更多信息,请参阅here。
- 1. 活动不能停止另一个活动,然后自己
- 2. 当活动被破坏然后重新创建时,Android保存一个变量
- 3. 活动被破坏,然后重新创建之前接收onActivityResult
- 4. 如何创建重复两次然后停止的NSTimer
- 5. 如何在slidetoggle()上停止setInterval()然后重新启动?
- 6. 防止解锁后重新创建活动屏幕
- 7. 防止android在崩溃后重新创建活动堆栈
- 8. 停止动画,然后重新启动它
- 9. 停止Android后退按钮从重新启动活动
- 10. 如何在重新创建活动后检索最后一个片段?
- 11. 停止后重新启动CSS3动画
- 12. CMDExec如果存在然后停止
- 13. 重新启动后台服务,如果停止
- 14. getIntent without extend活动
- 15. 停止脚本,然后重新启动它?
- 16. 在第一次后停止活动
- 17. 我想在同一活动中停止后重新启动相机源码
- 18. 文件被创建一次,然后停止
- 19. 如何停止然后重新启动cocos2D节点上的动作
- 20. Node.js读取然后重新创建一个JSON文件
- 21. 重新创建活动(如果不是很多资源)
- 22. 如何在停止后恢复活动?
- 23. Lemmon滑块自动播放只移动一个,然后停止
- 24. 合并2表,如果ID是新的,然后创建一个新的行
- 25. 网络音频:定时停止后重新创建振荡器
- 26. 仍然使用configChanges重新创建活动
- 27. 如何不在android中orintation之后重新创建活动?
- 28. 如果变量在db然后停止 - 如果变量不 - 然后输入它
- 29. 将活动结果发送到哪里,如果结果启动了新活动,然后主活动结束?
- 30. 重新创建活动后的片段重叠
完美。作为一个总结正是我所期待的。我实际上希望布尔值不在,所以我可以跟踪从 – jsb