2013-06-01 72 views
0

我的應用程序我正在使用處理程序,它在每1分鐘後完成其工作,它在我的MainActivity中的問題是,一段時間後它會停止工作。這是發生在三星galaxy筆記gt n7000,但是當我在其他非品牌手機運行相同的代碼,它工作正常,我使用Handler作爲以下有什麼不對?處理程序在一段時間後停止

public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
final Handler handler = new Handler(); 
     Runnable runnable = new Runnable() 
     { 
      public void run() 
      { 
         //doing some Task 
       handler.postDelayed(this, 60000); 
      } 
     }; 
     runnable.run(); 
} 
+0

如果沒有上下文,很難正確回答這個問題,所以請帶上一個。 –

+0

我有同樣的問題作爲處理程序得到停止,如果手機進入睡眠或其被鎖定。您可以使用alarmmanager它的作品,即使電話在睡眠mode.hope這可以幫助你。 –

回答

0

由於很多原因,處理程序可能會停止工作。

兩個顯而易見的是:

  • 過程中被殺害
  • CPU不再做任何事情,因爲手機去睡覺

請注意,您的代碼會導致內存泄漏的活動被破壞後。

無論如何,使用AlarmManager爲你想達到的目的。

編輯:

罰款(和相當短)瞭解爲什麼AlarmManager是CommonsWare正確的方法:http://www.androidguys.com/2009/09/09/diamonds-are-forever-services-are-not/

0

或者你可以使用一個服務..(服務與通知中不被Android操作系統殺死)。 某些應用程序,如Rounder和GloveBox正在使用通知,以防止它們被系統殺死。

+0

服務不會阻止CPU懶得執行。 ;) –

+0

但是,如果您希望即使設備進入睡眠模式,您的應用程序仍能正常工作,您必須使用服務,並更好地將它們用於通知。 – Alex

相關問題