我有一个使用片段的应用程序。在应用程序启动时,我这样做:
FragmentManager man = getFragmentManager();
FragmentTransaction trans = man.beginTransaction();
trans.replace(R.id.master_container, master);
trans.commit();
如您所见,我没有将其添加到 Backstack 中,因为我不希望用户陷入没有片段的空活动中。然而,这是行不通的。因为当我按下master
屏幕上的后退按钮时,它会关闭片段并使我处于黑色活动状态。现在我重写了onBackPressed()
帮助我的方法:
@Override
public void onBackPressed() {
// 'master' is the Mainscreen Fragment
if (master.isVisible()) {
if (!second) {
Toast.makeText(getApplication(), "Press back again to close application", Toast.LENGTH_SHORT).show();
second = true;
} else {
second = false;
CreamyActivity.this.finish();
}
} else {
super.onBackPressed();
bar.show();
}
}
但是每当CreamyActivity.this.finish();
它再次关闭片段并进入空白活动时(就好像它只是跟随后台堆栈)(这都是在活动中顺便说一句!)
我想知道你是否可以帮助我。通常应用程序不应该自行关闭,但我非常感谢这里的解决方法。还是我在后台做错了什么?它会自动添加它吗?
提前感谢<3