如果不可见,则在后台运行片段

时间:2017-06-22 22:54:34

标签: android android-fragments

所以我有一个Android应用程序,在主要活动上有3个片段。带倒计时器的片段,设置片段和第三个片段。我正在尝试启动我的计时器,并在应用程序中导航,例如打开其他片段,同时继续计时器倒计时。但不幸的是,一旦我启动计时器并导航到另一个片段,计时器就会停止。当我返回到计时器片段时,它将计时器设置回原始状态,就好像它从未启动过一样。我试过Fragment.setRetainInstance(boolean),没有运气。任何关于我应该如何让片段继续在后台运行作为一个开放的不同碎片的想法?

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();
    }

1 个答案:

答案 0 :(得分:0)

检查此answer尝试添加片段而不是替换。

<强>更新

试试这个answer它有更多细节..我认为它可以提供帮助