我有很多 fragment 和两个 Activity ,一个是包含每个 fragment 的主要 Activity 。当我要从任何 fragment 进行第二个 Activity 时,它的工作正常但之后我按下后退按钮返回到我最后添加的 fragment ,在这种情况下我来到主屏幕。我必须有第二个 Activity ,我不能用 fragment 替换它。如何从 Activity 返回到最后一个 fragment ?
在另一种情况下,我必须转到浏览器,然后在浏览器中按下后退按钮,应用程序会直接转到主屏幕,那么如何防止这种情况发生呢?
当您从第二个 Activity 按下后退时,第一个 Activity 的 onResume() 将被调用。因此您已从 onResume() 管理它,检查返回堆栈中的最后一个 fragment 并移动到该 fragment 。
因此您必须在第一个 Activity 的 onResume() 中使用此代码
FragmentManager manager = getSupportFragmentManager();
int count = manager.getBackStackEntryCount();
if(count>0){
Fragment mfragment = manager.getBackStackEntryAt(count-1);
FragmentTransaction ft = fragmentManager.beginTransaction();
ft.replace(R.id.content_frame, mFragment);
ft.commit();
}