При сбое приложения, когда я нахожусь в 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);
StackTrace:
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)
поиска 'Не удается выполнить это действие после onSaveInstanceState', вы получите много много ответа, –
или просто следить за вопросы, связанные с –
я проверить соответствующие вопросы. Я попытался использовать «commitAllowingStateLoss», я также попытался проверить «activity.isFinishing». Элемент управления не переходит в «isFinishing», и поскольку я получаю сбой перед ft.commit(), commitAllowingStateLoss тоже не помогает. –