我在一个活动中实现了底部导航视图,我用它在片段之间导航。显然,在片段之间切换时会有一些奇怪的行为。每当我退出我的应用程序并使用其他帐户登录时。偶尔显示前帐户的详细信息。当我连续切换到相同的片段时会发生这种情况。我正在使用的数据库是领域,所有数据通常在注销时被清除。我已经验证了。每当我注销时,使用finish()
销毁带有片段的活动。那么我是如何使用来自先前帐户的数据获取片段的呢?删除父活动后,片段是否留在堆栈事件中?问题真的很烦,因为我无法解释原因。替换片段的代码如下:
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction();
boolean initialSync = Preferences.getBoolean(MainActivity.this, "initialSync");
if (!initialSync && item.getItemId() != R.id.navigation_logout) {
InitialSyncFragment fragment = new InitialSyncFragment();
transaction.replace(R.id.content, fragment);
transaction.commit();
return true;
}
getFirstName();
switch (item.getItemId()) {
case R.id.navigation_home:
transaction.replace(R.id.content, new HomeFragment());
break;
case R.id.navigation_grades:
transaction.replace(R.id.content, new GradesFragment());
break;
case R.id.navigation_finances:
transaction.replace(R.id.content, new FinancesFragment());
break;
case R.id.navigation_info:
transaction.replace(R.id.content, new InfoFragment());
break;
case R.id.navigation_logout:
logout();
break;
}
transaction.commit();
return true;