Android之Handler用法总结

方法一:(Java习惯,在Android平台开发时这样是不行的,因为它违背了单线程模型)
 
刚刚开始接触Android线程编程的时候,习惯好像java一样,试图用下面的代码解决问题 

new Thread( new Runnable() {   
    public void run() {   
        myView.invalidate();   
    }           
}).start();

可以实现功能,刷新UI界面。但是这样是不行的,因为它违背了单线程模型:Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行。
 
方法二:(Thread+Handler)
 
查阅了文档和apidemo后,发觉常用的方法是利用Handler来实现UI线程的更新的。
 
Handler来根据接收的消息,处理UI更新。Thread线程发出Handler消息,通知更新UI。

Handler myHandler = new Handler() { 
          public void handleMessage(Message msg) { 
              switch (msg.what) { 
                    case TestHandler.GUIUPDATEIDENTIFIER: 
                        myBounceView.invalidate(); 
                        break; 
              } 
              super.handleMessage(msg); 
          } 
    };

class myThread implements Runnable {
public void run() {
while (!Thread.currentThread().isInterrupted()) {

Message message = new Message();
message.what = TestHandler.GUIUPDATEIDENTIFIER;

TestHandler.this.myHandler.sendMessage(message);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
}
}

以上方法demo看:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/631b1b1fcb44704d5a8b4ca589d62e43.html