2017-06-22 65 views
0

所以我有一個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(); 
    } 
+0

你在哪裏開始你的計時器?請使用處理程序在容器活動onResume中啓動它。並且永遠不要忘記在Activity的OnStop中停止它。 –

+1

所以你說的是讓計時器在容器活動中運行,而不是在實際的片段中運行。運行容器活動並將其單獨顯示在片段上 –

+0

是的,我在說so..try並讓我知道 –

回答

0

檢查此answer嘗試添加片段而不是替換。

UPDATE

試試這個answer它具有更多的細節。我認爲它可以幫助

+0

該片段與之前的片段視覺上重疊。所以它只是一堆坐在彼此頂部的圖像和文字。計時器仍在重置。 –

+0

你可以把你的代碼用於充氣片段 –

+0

我已經更新了我的答案檢查它..它會幫助你 –