由于Android考虑到线程安全问题,不允许在线程中执行UI线程 android.os.Handler可以实现
这个实例化了一个Handler,Handler可以通过Message在多个线程通讯Code
final Handler handler = new Handler(){
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
recLen++;
recTime.setText(GetRecTime(recLen));
break;
}
super.handleMessage(msg);
}
}; 下面定实例化一个TimerTask,这个是为Timer提供一个定时执行的内容。我在这个方法中加的是给Handler一个发送消息功能,因这在Timer的线程中,无法直接操作UI线程。 TimerTask task = new TimerTask(){
public void run() {
Message message = new Message();
message.what = 1;
handler.sendMessage(message);
}
}; 添加一个Timer,可以让程序运行起来了 timer = new Timer(true);
timer.schedule(task,1000, 1000); //延时1000ms后执行,1000ms执行一次
//timer.cancel(); //退出计时器
这个实例化了一个Handler,Handler可以通过Message在多个线程通讯Code
final Handler handler = new Handler(){
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
recLen++;
recTime.setText(GetRecTime(recLen));
break;
}
super.handleMessage(msg);
}
}; 下面定实例化一个TimerTask,这个是为Timer提供一个定时执行的内容。我在这个方法中加的是给Handler一个发送消息功能,因这在Timer的线程中,无法直接操作UI线程。 TimerTask task = new TimerTask(){
public void run() {
Message message = new Message();
message.what = 1;
handler.sendMessage(message);
}
}; 添加一个Timer,可以让程序运行起来了 timer = new Timer(true);
timer.schedule(task,1000, 1000); //延时1000ms后执行,1000ms执行一次
//timer.cancel(); //退出计时器
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货