Activity与Thread之间的通讯
来源:互联网 发布:linux如何开启8080端口 编辑:程序博客网 时间:2024/05/29 21:35
在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;
2
public
int
mMinutes;
3
public
int
mHour;
4
public
Handler mHandler;
5
private
Thread mClockThread;
接着我们通过Handler来接收Thread所传递的信息
01
mHandler =
new
Handler() {
02
public
void
handleMessage(Message msg) {
03
switch
(msg.what) {
04
case
TestHandler.GUINOTIFIER:
//TestHandler是Activity的类名
05
//得到Handle的通知了 这个时候你可以做相应的操作,本例是使用TextView 来显示时间
06
mTextView .setText(mHour +
" : "
+ mMinutes);
07
break
;
08
}
09
super
.handleMessage(msg);
10
}
11
};
接下来我们自定义一个Thread
01
class
LooperThread
extends
Thread {
02
public
void
run() {
03
super
.run();
04
try
{
05
do
{
//每间隔一秒取一次系统 时间
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);
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();
利用上面的例子我们可以扩展更多的应用,比如使用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之间的通讯
- 需要使用的端口但被占用时的操作
- Activity与Thread之间的通讯
- Html5---疯狂的大炮
- Struts2 message resource
- objective c 字符串处理 ,数组(转)
- Activity与Thread之间的通讯
- Java序列化
- 中国大学生放松的4年,恰好是美国大学生最勤奋的4年
- Android-分辨率以及dip(dp)、dpi、ppi、px、sp、pt说明
- nable to load configuration. - bean - jar:file:/F:/workspace/.metadata/.plugins/com.genuitec.eclipse
- 用jar 命令打包生成jar文件
- GEF 一篇不错的文章
- Android-图像识别项目OpenCV(3):程序目标以及单独发布
- 努力,奋斗