2017-03-10 48 views
-5

目前在我的應用程序中,我有用戶創建多個倒數計時器,只要他們點擊一個按鈕。我希望每個倒數計時器都配對一個取消按鈕,用戶可以取消倒數計時器。目前我有一個函數,它使用cdt.cancel()取消倒數計時器,其中cdt是countdowntimer var。但是,只允許我取消先前創建的cdt。有什麼辦法可以取消倒數計時器嗎?如何在Android中控制多個CoundownTimer

+2

請添加代碼 – Stefan

+0

店等計時器在其他變量,甚至列表 –

回答

0

我會做這樣的事情:

private void startNewTimer(List<CountDownTimer> listOfTimers) { 


     CountDownTimer countDownTimer = new CountDownTimer(1000,1000) { 
      @Override 
      public void onTick(long millisUntilFinished) { 

      } 

      @Override 
      public void onFinish() { 

      } 
     }.start(); 

     listOfTimers.add(countDownTimer); 

    } 

    private boolean cancelTimers(List<CountDownTimer> listOfTimers) { 

     if(listOfTimers != null && !listOfTimers.isEmpty()) { 
      for(CountDownTimer cdt : listOfTimers) { 
       cdt.cancel(); 
      } 
      listOfTimers = null; 
      return true; 
     } 
     return false; 
    } 

您可能希望創建List<CountDownTimer> listOfTimers作爲一個全局變量(List<CountDownTimer> listOfTimers = new ArrayList<>()

你會從你的按鈕OnClickListeneronClick方法調用的startNewTimer(list)和你認爲合適的stopTimers

如果要取消特定的取消,你可以在List喜歡引用它通過其指標是:

private boolean stopTimer(List<CountDownTimer> listOfTimers, int index) { 

     if(listOfTimers != null && listOfTimers.size() > index) { 
      for(int i = 0; i < listOfTimers.size(); i++) { 
       listOfTimers.get(i).cancel(); 
      } 
      return true; 
     } 
     return false; 
    } 
相關問題