在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等等

转载于:https://www.cnblogs.com/boyupeng/archive/2011/02/14/2028580.html

Activity与Thread之间的通讯(old)相关推荐

  1. Android Bundle类,通过bundle实现在两个activity之间的通讯

    根据google官方的文档(http://developer.android.com/reference/android/os/Bundle.html) Bundle类是一个key-value对,&q ...

  2. linux 和服务通讯,Android 的Activity和Service之间的通信

    在Android中Activity负责前台界面展示,service负责后台的需要长期运行的任务.Activity和Service之间的通信主要由IBinder负责.在需要和Service通信的Acti ...

  3. 非常详细的测试unity与android之间的通讯操作

    非常详细的测试unity与android之间的通讯操作 博客分类: unity3dandroid 非常详细的测试unity与android之间的通讯操作 转载自 http://www.narkii.c ...

  4. C#.NET通过Socket实现平行主机之间网络通讯(含图片传输的Demo演示)

    C#.NET通过Socket实现平行主机之间网络通讯(含图片传输的Demo演示) 作者:一点一滴的Beer http://beer.cnblogs.com/ 在程序设计中,涉及数据存储和数据交换的时候 ...

  5. java多线程有几种实现方法_Java多线程之间实现通讯

    一.课程目标 多线程之间如何通讯 wait.notify.notifyAll()方法 lock 停止线程 守护线程 Join方法 优先级 Yield 二.多线程之间如何实现通讯 2.1 什么是多线程之 ...

  6. WWF系列之----关于Host与WorkflowInstance之间的通讯

    关于Host与WorkflowInstance之间的通讯 工作流是将程序(实际上就是业务)流程独立出来,建立健壮的可伸缩的交互式的流程管理.其基本任务是保证每一个步骤必须严格地执行且仅可以执行一遍. ...

  7. .NET(C#)基于Socket编程实现平行主机之间网络通讯有图片传输的Demo演示

    本文讲下C#通过Socket编程实现平行主机之间网络通讯的详细讲解,非常不错的博文,一起来看下吧.      在程序设计中,涉及数据存储和数据交换的时候,不管是B/S还是C/S模式 ,都有这样一个概念 ...

  8. Message、Handler、Message Queue、Looper、Thread之间的关系(未完成)

    1. 请解释下在单线程模型中Message.Handler.Message Queue.Looper.Thread之间的关系 2. 什么是IntentService?有何优点? 1) 它是对单线程消息 ...

  9. 多线程Synchronized锁的使用与线程之间的通讯

    多线程Synchronized锁的使用与线程之间的通讯 一.什么是线程安全问题 二.如何解决线程安全问题 三.synchronized锁的基本用法 1.修饰代码块(this锁) 2.修饰实例方法(th ...

最新文章

  1. python读取csv文件制图-python读取CSV文件
  2. tomcat端口占用后的解决办法
  3. 在asp中怎么调用带输出参数的存储过程
  4. 茶苑机器人怎么看出来_小儿脑瘫怎么看出来?出现4个异常,该早点去看医生...
  5. [转载]PSCAD调用MATLAB/SIMULINK之接口元件设计
  6. 信息学奥赛一本通 1970:【15NOIP普及组】扫雷游戏 | OpenJudge NOI 1.8 14:扫雷游戏地雷数计算 | 洛谷 P2670 [NOIP2015 普及组] 扫雷游戏
  7. 浅谈三角带的使用及其分类
  8. Java中静态代码块
  9. buildconfiguration[C/C++]_[从netbeans里提取的通用构建C++项目的Makefile文件]
  10. Chukwa在百度的应用实践
  11. Linux多线程编程[精]
  12. 【机械仿真】基于matlab GUI 汽车悬架(钢板弹簧+减震器)设计【含Matlab源码 1631期】
  13. 用友U8安装...(转)
  14. iPhone手机弹窗BUG!每两分钟弹窗提醒一次,解决方案在这里
  15. 小技巧:DELL成就5620笔记本电脑网卡驱动
  16. HQChart使用教程85-股票复权计算
  17. 各种三角形边长的计算公式
  18. 系统分析员到底做什么?
  19. 2021高考体检成绩查询,2021年重庆高考体检报告结果查询时间及查询网址入口
  20. 17 -> 详解 openWRT 的 gpio 配置关系说明

热门文章

  1. 组信箱共享及挂载介绍
  2. patent filter
  3. 关闭微信朋友圈的第二天的感悟
  4. day22 Pythonpython 本文json模块
  5. Fuchsia 对 Android 到底意味着什么?
  6. dependencies与devDependencies之间的区别
  7. MySql解压版使用
  8. 2013ACM暑假集训总结-致将走上大三征途的我
  9. python list遍历
  10. hdu 5367(线段树+区间合并)