我有一个根据条件调用片段的主要活动,所以我在MainActivity的onResume中执行了以下操作:
Fragment f = getSupportFragmentManager().findFragmentById(R.id.container);
if (f != null) {
d.log("frag active, goes to current frag");
} else if (userId != 0 && f == null) {
d.log("active user frag is null, go to fragment X");
getSupportFragmentManager().beginTransaction().replace(R.id.container, new FragmentX()).commit();
} else {
d.log("no user, no frag, go to login");
getSupportFragmentManager().beginTransaction().replace(R.id.container, new LoginPage()).commit();
}
我添加了
setRetainInstance(true);
在所有片段的onCreate中。现在出现问题: 如果我按下最近的应用程序按钮(多窗口,我可以选择一个应用程序)转到另一个应用程序,然后执行相同的操作并返回到我的应用程序,一切正常,第一个条件符合预期。
但是......如果我按下主页按钮并在那里按下我的应用程序的图标,它会打开它但条件3已满足,因此它会进入登录页面,而不是最后一个活动的片段。
我做错了什么?