2014-10-05 116 views
0

我是新來的Android和Java。 我所擁有的是具有處理程序(h_main)和可運行(r_test)的活動。 *可運行程序在onStart()的活動中調用。 *可運行調用一個函數,通過Log.d獲取我的反饋(TAG,「tick ..」)。 *在函數結束時,可運行的get被再次調用,延遲時間爲1000ms。如何避免從主屏幕恢復重複活動

這樣,我得到了我的功能每秒調用什麼工作正常。 但是,當我回到Android的主屏幕並返回到我的應用程序,我得到了 每秒兩個'蜱'。 現在我的活動現在運行了兩次。我怎樣才能避免這種情況?

@Override 
protected void onStart() { 
    super.onStart(); 
    Log.d(TAG,"onStart()"); 
    h_main.postDelayed(r_test, 1000); 
} 

public void timer_runable() { 
    Log.d(TAG,"tick.."); 
    h_main.postDelayed(r_test, 1000); 
} 

回答

0

解決的辦法是你CANCLE未決可運行在onPause()

@Override 
protected void onPause() { 
    super.onPause(); 
    h_main.removeCallbacks(r_test); 
} 
+0

是否有保持運行,而應用程序是在後臺的方法嗎?我想在某些情況下收到通知,它們可能在應用不在前臺時出現。 – BastelWastel 2014-10-05 14:34:23

+0

達到此目的的正常方法是使用服務。 – rekire 2014-10-05 14:35:13

+0

那麼,沒有快速/簡單的方法嗎?我希望在開始討論新話題之前,先把注意力集中在一半的功能上。 – BastelWastel 2014-10-05 14:39:11