如何在Fragment中运行CountDownTimer

Monstereo:

我有一个带抽屉菜单的User Activity类(包括主页,我的个人资料等)。当用户单击菜单项之一时,我将加载片段,如HomePageFragment,MyProfilFragment等。

这是代码示例:

public void navigationItemSelectedListener(DrawerLayout drawerLayout, NavigationView navigationView) {
    navigationView.setNavigationItemSelectedListener(menuItem -> {
    menuItem.setChecked(true);
    int menuId = menuItem.getItemId();
    switch (menuId){
        case R.id.home_menu_item:
            loadFragment(new HomePageFragment());
            break;
// goes like that

这是loadFragment:

public void loadFragment(Fragment fragment) {
    FragmentManager fragmentManager = getSupportFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
    fragmentTransaction.replace(R.id.user_page_activity_frame_layout, fragment);
    fragmentTransaction.commit();
    }
}

现在我已经在HomePageFragment中运行了CountDownTimer(60秒),当counter为0时,我将运行一些method()。

但是我做不到。由于每次用户浏览新项目时,然后返回到HomePage菜单项时,都会创建新的HomePageFragment(),因此CountDownTimer一次又一次地以60s开始。我希望CounDownTimer运行什么,即使用户浏览另一个菜单也是如此。

请注意,我尝试将HomePageFragment属性创建为全局属性。但这没有用。(像2个计时器倒计时。一个说60-59 ...另一个说30-29 ...)

提示:

这里的问题是,Fragment每次用户导航到另一个项目时,您都会被破坏。

为了解决这个问题

1.要么在您的主机活动中创建计时器,要么在片段中创建片段 navigationItemSelectedListener()

2.确保您的片段不会每次都被破坏。检查如何从BackStack恢复片段(如果存在)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章