2014-03-05 113 views
0

我使用Timer在app處於前臺時定期(一分鐘一次)下載一些帶有AsyncTask的數據。使用計時器定期執行AsyncTask

當應用程序移動到後臺時,如果在設備上運行其他任何內存佔用的應用程序,則會發生計時器「死亡」。

  1. 所以,如果我回到我的應用程序,我需要重新啓動計時器,但只有當它已被殺死。如果它被殺死了,定時器會是null嗎?我如何檢測這個?

  2. 另一種方法是當應用程序轉到背景時停止計時器,然後在應用程序轉到前臺時啓動計時器。有沒有什麼方法可以檢測應用何時從背景移動到背景/從背景移動到前景?

回答

0
覆蓋

onRestart方法正在重新啓動應用程序時,或在前景像這樣:

@Override 
    protected void onRestart() { 
     super.onRestart(); 
     //Cancel your timer and then restart with your code. 
     timer.cancel() 
     //start timer with your existing code. 
    }