我在通过onSaveInstanceState()将应用状态保存到Bundle时遇到了很多问题。
目前,我需要解决我的应用在Android关闭后恢复时崩溃的问题。
当一个活动/片段(在后台)被Android强行关闭以重新获得资源时,有没有办法可以说“不要在恢复时尝试恢复状态,只是重新创建一切”?
由于
答案 0 :(得分:1)
在" onCreate"方法f活动,你可以将空值传递给超级调用
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(null);
//rest of your code
}
答案 1 :(得分:0)
我建议您使用onPause()
方法保存数据。当您使用HOME
按钮onSaveInstanceState
关闭应用时,从未调用过,数据将会丢失。
有没有办法可以说"不要在恢复时尝试恢复状态,只需重新创建所有内容"?
是。您可以。您可以检查应用程序的窗口状态并使用布尔标志操纵您的逻辑。另外,我建议您将保存\恢复数据过程分为两种不同的方式:
答案 2 :(得分:0)
对于活动,如果要从头开始创建它,则只需覆盖onSaveInstanceState并调用super.onSaveinstanceState传递一个null即Bundle。
对于Fragment,只需在片段的onActivityCreated方法中将setRetainInstanceState设置为false。