【发布时间】:2016-07-21 21:01:23
【问题描述】:
我有 2 个活动,A 和 B。活动 A 由一个片段组成。对于通知点击,我使用 TaskStackBuilder,调用 nextIntent 作为 B,它的 parentActivity 作为 A。对于 nextIntent,我设置 Intent.FLAG_ACTIVITY_NEW_TASK 标志。
场景是,B 活动在前台,通知到达并且您单击它,活动 A 被销毁,活动 B 从 onCreate 加载。如果我返回,Activity A 的 onCreate 会被加载,但是对于片段提交调用,我会遇到以下崩溃。
致命异常:java.lang.IllegalStateException:无法执行此操作 onSaveInstanceState 之后的操作 在 android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1493) 在 android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1511) 在 android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:638) 在 android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:617)
这是我提交片段的方式
EgFragment fragment = new EgFragment();
getSupportFragmentManager().beginTransaction().add(R.id.view, fragment).commit();
任何帮助克服这种情况.....
【问题讨论】:
-
请显示代码。你的意思是
FragmentTransaction.commit而不是fragment.commit? :) -
我已经用提交代码编辑了问题
-
尝试提交允许状态丢失的片段事务
-
@Eenvincible :它给出了另一个崩溃,说当活动被破坏时无法提交片段。
-
等等,你能不说FLAG_ACTIVITY_NEW_TASK就开始活动吗?