私のアプリケーションでは、ボトムバーメニューを使用しています。メニューをすばやく選択すると、クラッシュレポートの次のクラッシュレポートが表示されます(一部のデバイスのみ)。 java.lang.IllegalStateException:android.support.v4.app.FragmentManagerImpl.checkStateLossでonSaveInstanceState 後 このアクションを実行することはできません(FragmentManager.java:1842ここで非致命的な例外popBackStackの不正な状態の例外
がスタックトレースがあります) android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1860) android.support.v4.app.FragmentManagerImpl.popBackStack(FragmentManager.java:781) at com.beco.ibeco.app .MainActivity $ 1.onMenuTabSelected(MainActivity.java:87) at com.beco.ibeco.app.views.bottombar.BottomBar.notifyMenuListener(BottomBar.java:1239) at com.beco.ibeco.app.views.bottombar.BottomBar.updateSelectedTab(BottomBar.java:1199) (com.beco.ibeco.app.views.bottombar.BottomBar.handleClick(BottomBar.java:1161) at) android.view.View $ PerformClick.runでcom.beco.ibeco.app.views.bottombar.BottomBar.onClick(BottomBar.java:1149)android.view.View.performClick(View.java:5076)で ( View.java:20279) (android.os.Handler.handleCallback(Handler.java:739) (android.os.Handler.dispatchMessage(Handler.java:95)) にandroid.os.Looper.loop(Looper。 java:135)android.app.ActivityThread.main(ActivityThread.java:5930) at java.lang.reflect.Method.invoke(Method.java) at java.lang.refl ect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1405) at com.android.internal.os.ZygoteInit.main(ZygoteInit。 Javaの:1200)
そしてここでは、コード
protected void onCreate(Bundle savedInstanceState) {
mActive = true;
super.onCreate(savedInstanceState);
initBottomBar(savedInstanceState);
Intent intent = getIntent();
}
private void initBottomBar(Bundle savedInstanceState) {
mBottomBar = BottomBar.attach(this, savedInstanceState);
mBottomBar.useFixedMode();
mBottomBar.noTabletGoodness();
mBottomBar.setItemsFromMenu(R.menu.bottombar_menu, new OnMenuTabClickListener() {
@Override
public void onMenuTabSelected(@IdRes int menuItemId) {
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);//line 87
switch (menuItemId) {
case R.id.bottomBarHome:
showStoreList();
break;
case R.id.bottomBarMap:
showMap();
break;
case R.id.bottomBarDeal:
showDeals();
break;
case R.id.bottomBarSettings:
showSettings();
break;
case R.id.bottomBarNotification:
if (mNotificationBadge != null) {
mNotificationBadge.hide();
Beco.getApp().clearBadge();
}
showNotifications();
break;
}
}
@Override
public void onMenuTabReSelected(@IdRes int menuItemId) {
switch (menuItemId) {
case R.id.bottomBarHome:
if (mCurrentTab != HOME)
showStoreList();
break;
case R.id.bottomBarMap:
if (mCurrentTab != MAP)
showMap();
break;
case R.id.bottomBarDeal:
if (mCurrentTab != DEAL)
showDeals();
break;
case R.id.bottomBarNotification:
if(mCurrentTab != NOTIFICATION) {
if (mNotificationBadge != null) {
mNotificationBadge.hide();
mNotificationBadge.setDealItemCount(0);
Beco.getApp().clearBadge();
}
showNotifications();
}
break;
case R.id.bottomBarSettings:
if (mCurrentTab != SETTINGS)
showSettings();
break;
}
}
});
mNotificationBadge = mBottomBar.makeBadgeForTabAt(3, R.color.beco_badge_color, Beco.getApp().getBadgeCount());
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
mBottomBar.onSaveInstanceState(outState);
}
どのように私はこの問題を上書きすることができますか?
[saveInstanceState後popBackStack()()]の可能な重複(HTTPS onpauseするつもりはないかどうかをチェック:/をあなたはブール値を削除したい場合/stackoverflow.com/questions/7474882/popbackstack-after-saveinstancestate) –