【问题标题】:Why onDestroy recreates the Fragments when Activity recreate after process killed为什么onDestroy在进程终止后重新创建Activity时重新创建片段
【发布时间】:2015-10-31 10:55:48
【问题描述】:

我试图了解当Activity 在进程被杀死和Activity destroy 后重新创建时Fragments 会发生什么。

场景:我有一个包含多个活动的应用程序,第一个活动加载配置并被其他活动使用。在后台应用程序时内存不足,进程被杀死。 如果我选择应用程序(来自最近的应用程序),进程被终止后,活动正在重新创建。但是重新创建时的当前活动将尝试访问配置和应用程序崩溃。

所以,如果重新创建活动时未加载配置,我决定完成活动,并导航到加载配置的第一个活动。 这解决了大部分问题,但是如果 Activity 有片段并且当 onDestroy 发生在重新创建时,应用程序会崩溃,因为 onDestroy 正在尝试重新创建片段。

at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:973)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1138)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1120)
at android.support.v4.app.FragmentManagerImpl.dispatchReallyStop(FragmentManager.java:1956)
at android.support.v4.app.FragmentActivity.onReallyStop(FragmentActivity.java:790)
at android.support.v4.app.FragmentActivity.doReallyStop(FragmentActivity.java:767)
at android.support.v4.app.FragmentActivity.onDestroy(FragmentActivity.java:314)

我试图删除onDestory 中的片段,但它不起作用。

【问题讨论】:

    标签: android android-fragments android-activity


    【解决方案1】:

    您可以尝试在 onPause() 方法中保存配置,并在活动重新创建时重新加载。

    【讨论】:

    • 是的,这可以做到。但是我的配置加载过程太大,很难持久化所有信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-24
    • 1970-01-01
    • 2013-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多