所以我有一个android应用程序,主要活动有3个片段。带有倒数计时器的片段,用于设置的片段和第三个片段。我正在尝试启动计时器,并浏览应用程序,例如打开其他片段,同时继续计时器进行倒计时。但不幸的是,一旦我启动计时器并导航到另一个片段,计时器就会停止。当我返回到计时器片段时,它将计时器恢复到原始状态,就好像它从未开始一样。我试过Fragment.setRetainInstance(布尔),没有运气。任何想法,我应该如何让片段继续在后台作为开放的不同碎片运行?如果不可见,在后台运行一个片段
public void selectDrawerItem(MenuItem menuItem) {
Fragment fragment = null;
Class fragmentClass;
switch(menuItem.getItemId()) {
case R.id.nav_first_fragment:
fragmentClass = HomeFragment.class;
break;
case R.id.nav_second_fragment:
fragmentClass = StatsFragment.class;
break;
case R.id.nav_third_fragment:
fragmentClass = SettingsFragment.class;
break;
default:
fragmentClass = HomeFragment.class;
}
try {
fragment = (Fragment) fragmentClass.newInstance();
} catch (Exception e) {
e.printStackTrace();
}
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().replace(R.id.flContent, fragment).commit();
menuItem.setChecked(true);
setTitle(menuItem.getTitle());
mDrawer.closeDrawers();
}
你在哪里开始你的计时器?请使用处理程序在容器活动onResume中启动它。并且永远不要忘记在Activity的OnStop中停止它。 –
所以你说的是让计时器在容器活动中运行,而不是在实际的片段中运行。运行容器活动并将其单独显示在片段上 –
是的,我在说so..try并让我知道 –