子线程操作UI
Handler
实现了一个Clock类来学习
/*** 实现一个时钟类 实时更新TextView中的时间信息* 创建时必须传入需要更新的TextView* 在UI线程中注册clockHandler实现回调更新*/public class Clock {public Handler clockHandler;public TextView textClock;private boolean isClockStared = false;private ClockThread clockThread = null;// 构造public Clock(TextView aTextClock) {textClock = aTextClock;clockHandler = new ClockHandler();}// 时钟UI更新方法public void clockUpdate() {textClock.setText(new Date().toString());}// 启动clock线程public void clockStart() {if (clockThread == null) {clockThread = new ClockThread();}if (!isClockStared) {clockThread.start();isClockStared = true;}}// 关闭clock线程public void clockStop() {clockThread.interrupt();clockThread = null; /*内存*/isClockStared = false;}class ClockThread extends Thread {public void run() {while (!isInterrupted()) {try {clockHandler.sendEmptyMessage(666);Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();Thread.currentThread().interrupt();}}}}class ClockHandler extends Handler {public void handleMessage(Message msg) {if (msg.what == 666) {clockUpdate();}}}}
主要需要注意 ClockHandler类
实际使用时,在UI线程中,创建一个 Handler的引用,并绑定到Clock实例的clockHandler即可
广播
…
异步任务
…
