片段addToBackStack关闭App

Mar*_*kus 1 android fragment back-stack

我找不到解决问题的方法.

我有几个片段(动态创建),但我的后退按钮根本不工作,按下它将关闭应用程序,无论片段是"活动".

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {

case R.id.itemAdd:
FragmentTransaction tx = getFragmentManager().beginTransaction();
    Fragment fragment = new NeuesProduktFrag();

    tx.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right,
             R.anim.slide_in_left, R.anim.slide_out_right);
     tx.replace(R.id.main, fragment);
     tx.addToBackStack(null);
     tx.commit();
    return true;
Run Code Online (Sandbox Code Playgroud)

一切正常,但进入"NeuesProduktFrag"碎片并按下后退按钮我的应用程序关闭.尝试使用不同的按钮等.不需要覆盖onBackPressed吗?addToBackStack应该诀窍呢?

Mar*_*kus 6

经过很长一段时间,这是我最后的代码:

@Override
public void onBackPressed() {

// initialize variables
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();

// check to see if stack is empty
if (fm.getBackStackEntryCount() > 0) {          
    fm.popBackStack();
    ft.commit();    
}
else {
    if (this.lastBackPressTime < System.currentTimeMillis() - 4000) {
Toast.makeText(this, "Nochmal drücken zum Beenden!", 4000).show();
this.lastBackPressTime = System.currentTimeMillis();
} else{
        super.onBackPressed();
    }        
}
}
Run Code Online (Sandbox Code Playgroud)

我在FragmentActivity中使用它并添加了一个双选项卡来最终关闭App.