在Android中要让Activity与Thread进行通讯 其实很简单。
重点就在于android .os.Handler、java.lang.Thread以及android.os.Message这三个类的整合应用我们在Thread中可以通过Message来通知Handler,Handler在这里扮演着联系Acitivity与Thread之间的角色。
首先在Acitivity中我们要定义 一个常量来作为判断标示
1 | private static final int GUINOTIFIER = 0x1234 ; |
然后定义一些例子 里面需要的属性
1 | public Calendar mCalendar; |
4 | public Handler mHandler; |
5 | private Thread mClockThread; |
接着我们通过Handler来接收Thread所传递的信息
01 | mHandler = new Handler() { |
02 | public void handleMessage(Message msg) { |
04 | case TestHandler.GUINOTIFIER: |
06 | mTextView .setText(mHour + " : " + mMinutes); |
09 | super .handleMessage(msg); |
接下来我们自定义一个Thread
01 | class LooperThread extends Thread { |
06 | long time = System.currentTimeMillis(); |
07 | final Calendar mCalendar = Calendar.getInstance(); |
08 | mCalendar.setTimeInMillis(time); |
09 | mHour = mCalendar.get(Calendar.HOUR); |
10 | mMinutes = mCalendar.get(Calendar.MINUTE); |
13 | Message m = new Message(); |
14 | m.what = Ex04_14.GUINOTIFIER; |
15 | Ex04_14. this .mHandler.sendMessage(m); |
16 | } while (!LooperThread.interrupted()); |
17 | } catch (InterruptedException e) { |
最后我们启动线程
1 | mClockThread = new LooperThread(); |
利用上面的例子我们可以扩展更多的应用,比如使用Thread进行上传下载 操作,完成后通知主Activity等等。