在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等等
分享到:
相关推荐
讲解android系统中Activity与Service通讯、进程通讯,对于想了解android的组件基础知识有帮助!!
在开发过程中不可避免的会出现fragment与fragment,fragment与activity之间的通信交互问题。 本章讲述如何实现fragment与activity之间的通信。 一、APP构成 MainActivity+底部导航栏; 二、通信目的 MainActivity中...
Service的启动,Activity与Service之间数据传递,Binder利用bindService实现Service传递数据给Activity,Activity的成员Broadcast实现Service传递数据给Activity
例子主要包括Fragment与Activity之间的通信,代码中还给出了两者之间通信具体调用的函数及其顺序。
activity之间的传递数据的详解。代码简单易懂
Activity review activity之间的数据传递
Android PopupWindow与Activity之间的数据传递
Activity与Fragment之间进行传值,相关博文:http://www.cnblogs.com/tianzhijiexian/p/3888330.html
Activity之间传递数据
Activity通知Fragment采用观察者模式,fragment之间通讯另建Function接口
实现Activity之间跳转 ,在 Android 中 多个界面,应用于Activity 之间切换。
Fragment 之间的切换,与Activity之间的数据传递,实现基本的功能
Android 笔记-Fragment 与 Activity之间传递数据,使用setArgument方法的例子
android:Fragment和Activity之间的通讯分享.pdf
android activity之间的跳转
资源包括如何在一个activity A里激活另一个activity B。...然后在两个activity之间用handler传输数据。在activity A里定义全局变量handler,用sendMessage来发数据,在handler里数据以消息队列的方式发送。
在Android内实现各个Activity之间的转换
Activity之间切换的各种效果 Activity之间切换的各种效果 Activity之间切换的各种效果 Activity之间切换的各种效果 Activity之间切换的各种效果 Activity之间切换的各种效果 Activity之间切换的各种效果 Activity...
android 中在Activity之间使用startActivityForResult 从一个activity01跳转到activity02,当从activity02返回activity01时回传数据
Activity之间通信及其生命周期变化,及回传参数等基础知识点