在恢复时强制重新创建活动/片段

时间:2014-12-23 13:34:55

标签: android

我在通过onSaveInstanceState()将应用状态保存到Bundle时遇到了很多问题。

目前,我需要解决我的应用在Android关闭后恢复时崩溃的问题。

当一个活动/片段(在后台)被Android强行关闭以重新获得资源时,有没有办法可以说“不要在恢复时尝试恢复状态,只是重新创建一切”?

由于

3 个答案:

答案 0 :(得分:1)

在" onCreate"方法f活动,你可以将空值传递给超级调用

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(null);
    //rest of your code
}

答案 1 :(得分:0)

我建议您使用onPause()方法保存数据。当您使用HOME按钮onSaveInstanceState关闭应用时,从未调用过,数据将会丢失。

  

有没有办法可以说"不要在恢复时尝试恢复状态,只需重新创建所有内容"?

是。您可以。您可以检查应用程序的窗口状态并使用布尔标志操纵您的逻辑。另外,我建议您将保存\恢复数据过程分为两种不同的方式:

  • 准备数据以保存\ restore
  • 保存\恢复

答案 2 :(得分:0)

对于活动,如果要从头开始创建它,则只需覆盖onSaveInstanceState并调用super.onSaveinstanceState传递一个null即Bundle。

对于Fragment,只需在片段的onActivityCreated方法中将setRetainInstanceState设置为false。