A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© z820661319 中级黑马   /  2015-1-5 10:55  /  2821 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

12黑马币
请给代码解释谢谢!

最佳答案

查看完整内容

在Android中要让Activity与Thread进行通讯 其实很简单。 重点就在于android .os.Handler、java.lang.Thread以及android.os.Message这三个类的整合应用我们在Thread中可以通过Message来通知Handler,Handler在这里扮演着联系Acitivity与Thread之间的角色。 首先在Acitivity中我们要定义 一个常量来作为判断标示 接着我们通过Handler来接收Thread所传递的信息 接下来我们自定义一个Thread 最后我们启动线程 ...

5 个回复

倒序浏览
在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;
复制代码

接着我们通过Handler来接收Thread所传递的信息
  1. mHandler = new Handler() {
  2. public void handleMessage(Message msg) {
  3.     switch (msg.what) {
  4.     case TestHandler.GUINOTIFIER://TestHandler是Activity的类名
  5.         //得到Handle的通知了 这个时候你可以做相应的操作,本例是使用TextView 来显示时间
  6.         mTextView .setText(mHour + " : " + mMinutes);
  7.         break;
  8.     }
  9.     super.handleMessage(msg);
  10. }
  11. };
复制代码

接下来我们自定义一个Thread
  1. class LooperThread extends Thread {
  2.     public void run() {
  3.     super.run();
  4.     try {
  5.         do {//每间隔一秒取一次系统 时间
  6.         long time = System.currentTimeMillis();
  7.         final Calendar mCalendar = Calendar.getInstance();
  8.         mCalendar.setTimeInMillis(time);
  9.         mHour = mCalendar.get(Calendar.HOUR);
  10.         mMinutes = mCalendar.get(Calendar.MINUTE);
  11.         Thread.sleep(1000);
  12.         //取得系统时间后发送消息给Handler
  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) {
  18.         e.printStackTrace();
  19.     }
  20.     }
  21. }
复制代码

最后我们启动线程
  1. mClockThread = new LooperThread();
  2. mClockThread.start();
复制代码
回复 使用道具 举报
不懂可以再提问
回复 使用道具 举报

        谢谢!!!
回复 使用道具 举报
谢谢楼主分享又学到东西了
回复 使用道具 举报
受教受教了啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马