2011-09-13 75 views
0

在android中,如果點擊一個按鈕,我想倒數從30開始倒計數到0.我創建了一個基本的倒數方法的代碼,但問題是它沒有如果活動或申請關閉,則繼續倒計時。給變量的值每30秒一個

我想要做的是對於活動或只是倒計時將繼續在後臺滴答下來,直到它擊中0中,它會變量B更改爲我從擴大的1

值我原來的模型認爲我可以比較點擊按鈕+ 30秒到再次調用活動時的日期時間。但到目前爲止,我已經在比較Android中的兩個日期時間的殘端。

任何幫助?

+0

你能否在這裏更新你的代碼? –

+0

請顯示我的代碼我已更新 –

回答

0

您可以嘗試使用服務而不是活動。

+0

儘管如此,我不想浪費不必要的CPU內存。有沒有其他方法? –

+0

我認爲這是評論,所以PLZ使用評論,而不是答案 –

+0

確定感謝您的建議。 –

1

您可能想要的是在後臺運行的異步任務。喜歡的東西:

private class JohnnysPollTask extends AsyncTask<Integer, Void, Integer> { 
     /** 
     * The system calls this to perform work in a worker thread and delivers 
     * it the parameters given to AsyncTask.execute() 
     */ 
     protected Integer doInBackground(Integer... millis) { 
      try { 
       int waited = 0;   
           int duration = 30000; 
       while (waited < duration) { 
        Thread.sleep(1000); 
        waited += 1000; 

        if (waited>=duration) { 
         b=1; 
         break; 
        } 
       } 
      } catch (InterruptedException e) { 
       // do nothing 
      } 

      return 1; 
     }