歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

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.linuxidc.com/Linux/2013-03/81880.htm

Copyright © Linux教程網 All Rights Reserved