在我的应用程序中,我有5个片段,并且要求是在任何给定片段上,如果按下后退按钮,它应退出应用程序。换句话说,片段没有任何顺序并且是独立的。按下任何片段上的后退按钮实际上会关闭应用程序本身。
在某些片段中,我使用以下代码打开其他片段:
FragmentManager fm = getActivity().getSupportFragmentManager();
fm.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
track nextFrag= new track();
login.this.getFragmentManager().beginTransaction()
.replace(R.id.content_frame, nextFrag, null)
.addToBackStack(null)
.commit();
然而,历史仍然保持不变,我该怎么做才能清除任何片段开始的历史。
编辑: 试过这个并且应用程序确实在退回时退出,但是我仍然可以看到之前活动的一瞥并且它引发了一些令人讨厌的异常。
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
finish();
}
}