2010-04-12 149 views
4

我正在使用擴展Handler類來更新我的活動UI的類。 的代碼是從側面主要活動如下,停止Android處理程序循環

public class RefreshHandler extends Handler { 

    public void handleMessage(Message msg) { 


     Homeform.this.updateUI(); 
    } 
    public void sleep(long delayMillis) { 
     this.removeMessages(0); 
     sendMessageDelayed(obtainMessage(0), delayMillis); 
    } 
}; 

private void updateUI(){ 
    Log.v(""," I am inside Update UUI====================="); 

    refresh(); 
    mRedrawHandler.sleep(5000); 

} 

,我不得不RefreshHandler的對象上調用此方法的handleMessage()如下

mRedrawHandler = new RefreshHandler(); 

mRedrawHandler.handleMessage(new Message()); 

但在這裏我現在面臨一個問題,即,在關閉我的應用程序後也運行。

請解決我的問題,關閉此應用程序時停止此處理程序。

謝謝。

+0

我希望我有編輯權限 – Casebash 2010-04-29 05:24:07

+0

@Casebash但我確實有編輯權限。 :) – 2011-03-24 11:17:32

回答

1

像這樣的東西應該工作:

if(!isFinishing()) { 
    sendMessageDelayed(obtainMessage(0), delayMillis); 
} 

即補充說,如果語句在你的SendMessage線

8

的onDestroy,調用remove

mRedrawHandler。 removeMessages(0);