当我点击服务器RPC时,应用程序崩溃,并且当RPC正在进行时,我将应用程序置于后台。同时,当RPC从服务器接收到响应时,它会从堆栈中弹出一个片段。在弹出片段的同时,应用程序崩溃了。
我已经阅读了关于创建 WeakReference 的文章,如果活动被销毁,它将为null。但不确定如何在这种情况下实现它。
以下是我的代码:
以下是我的代码:
private void showFragment(SherlockFragment fragment) {
FragmentManager fm = getSupportFragmentManager();
fm.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.content, fragment);
ft.commit();
}
执行以下代码时出现崩溃:
fm.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
堆栈跟踪:
01-15 16:37:44.435: E/AndroidRuntime(28049): FATAL EXCEPTION: main
01-15 16:37:44.435: E/AndroidRuntime(28049): java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
01-15 16:37:44.435: E/AndroidRuntime(28049): at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1299)
01-15 16:37:44.435: E/AndroidRuntime(28049): at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1310)
01-15 16:37:44.435: E/AndroidRuntime(28049): at android.support.v4.app.FragmentManagerImpl.popBackStack(FragmentManager.java:452)
01-15 16:37:44.435: E/AndroidRuntime(28049): at com.druva.inSync.ValidationActivity$2.run(ValidationActivity.java:93)