2010-04-12 110 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);