Activity与Thread之间的通讯
来源:互联网 发布:unity3d 5.5.2破解版 编辑:程序博客网 时间:2024/05/22 02:25
在Android中要让Activity与Thread进行通讯 其实很简单。
重点就在于android .os.Handler、java.lang.Thread以及android.os.Message这三个类的整合应用
我们在Thread中可以通过Message来通知Handler,Handler在这里扮演着联系Acitivity与Thread之间的角色。
首先在Acitivity中我们要定义 一个常量来作为判断标示
- private static final int GUINOTIFIER = 0x1234;
然后定义一些例子 里面需要的属性
- public Calendar mCalendar;
- public int mMinutes;
- public int mHour;
- public Handler mHandler;
- private Thread mClockThread;
接着我们通过Handler来接收Thread所传递的信息
- mHandler = new Handler() {
- public void handleMessage(Message msg) {
- switch (msg.what) {
- case TestHandler.GUINOTIFIER://TestHandler是Activity的类名
- //得到Handle的通知了 这个时候你可以做相应的操作,本例是使用TextView 来显示时间
- mTextView .setText(mHour + " : " + mMinutes);
- break;
- }
- super.handleMessage(msg);
- }
- };
接下来我们自定义一个Thread
- class LooperThread extends Thread {
- public void run() {
- super.run();
- try {
- do {//每间隔一秒取一次系统 时间
- long time = System.currentTimeMillis();
- final Calendar mCalendar = Calendar.getInstance();
- mCalendar.setTimeInMillis(time);
- mHour = mCalendar.get(Calendar.HOUR);
- mMinutes = mCalendar.get(Calendar.MINUTE);
- Thread.sleep(1000);
- //取得系统时间后发送消息给Handler
- Message m = new Message();
- m.what = Ex04_14.GUINOTIFIER;
- Ex04_14.this.mHandler.sendMessage(m);
- } while (!LooperThread.interrupted());//当系统发出终端命令时停止循环
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }
最后我们启动线程
- mClockThread = new LooperThread();
- mClockThread.start();
利用上面的例子我们可以扩展更多的应用,比如使用Thread进行上传下载 操作,完成后通知主Activity等等
- Activity与Thread之间的通讯
- Activity与Thread之间的通讯
- Activity与Thread之间的通讯
- Activity与Thread之间的通讯
- Activity与Thread之间的通讯
- Activity与Thread之间的通讯
- Activity与Thread之间的通讯
- Activity与Thread之间的通讯
- Activity与Thread之间的通讯
- Activity与Thread之间的通讯
- 独立AsyncTask与activity之间的通讯
- Activity与Service之间的通讯机制
- Android--activity配置与activity之间的通讯(一)
- Android Service 与Activity之间的通讯方式
- Service与Activity之间的通讯(二)
- Android Application与thread、stack、task、activity之间的关系
- Android Application与thread、stack、task、activity之间的关
- fragment之fragment与activity通讯以及fragment之间的通讯
- Android应用实例(一)之---有道辞典VZ.0
- 利用内存映射文件在进程间共享数据
- iOS:应用程序的线程安全性
- Activity详细讲解
- Asp.Net后台代码设置前台的JS方法
- Activity与Thread之间的通讯
- js验证收集
- 百钱买百鸡
- Android MediaPlayer 简单综合应用------列出sdcard里所有.mp3文件,并且可以点击播放!
- pdf格式分析(1) -- 文本和二进制混排
- 【ios】svn local delete, incoming delete upon update 解决办法
- Android应用实例之----天气预报程序.
- 用Session实现简单的购物车 (将点击了购买链接的书籍放到购物车页面显示出来)
- cdma相关