在做项目时,UI界面采用activity管理fragment,其中涉及到fragment的回退栈管理 以及再按一次退出,一般在activity中
onBackPressed方法进行操作
@Override public void onBackPressed() { FragmentManager.BackStackEntry entryAt = fragmentManager.getBackStackEntryAt(fragmentManager.getBackStackEntryCount() - 1); //得到每一个位于栈顶的类的名字,然后执行Finish方法进行弹栈 String name = entryAt.getName(); if ("HomeFragment".equals(name) || "LiveChinaFragment".equals(name) || "PandaCultureFragment".equals(name) || "PandaBroadcastFragment".equals(name) || "PandaLiveFragment".equals(name) ) { if(System.currentTimeMillis()-lastTime<2000) { System.exit(0); }else { Toast.makeText(MainActivity.this, "再按一次退出应用", Toast.LENGTH_SHORT).show(); lastTime=System.currentTimeMillis(); } } else { if (fragmentManager.getBackStackEntryCount() > 1) { fragmentManager.popBackStackImmediate();//执行弹栈,立马执行 //否则记录得到位于栈顶的类名字 String simpleName = fragmentManager.getBackStackEntryAt(fragmentManager.getBackStackEntryCount() - 1).getName(); //记录做标记,标记为上一个Fragment,点击back键刷新lastFragment App.lastFragment = (BaseFragment) fragmentManager.findFragmentByTag(simpleName); } } } //执行完全退出 @Override protected void onDestroy() { super.onDestroy(); Process.killProcess(Process.myPid());//获取pid System.exit(0); }