歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android之Handler用法總結

Android之Handler用法總結

日期:2017/3/1 9:59:28   编辑:Linux編程

方法一:(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