android 开发篇
顺序可能不太对,之前学习的没有写出来,先写这个吧,后面都写出来了再整理。
android定时执行任务的实现,最近做的东西中用到了定时器去定时去完成一项任务,每20分钟通过蓝牙向硬件设备发送一次数据。实现还是比较简单的,首先定义一个定时器timer ;
private Timer timer = new Timer(true);
TimerTask是一个抽象类,它的子类代表一个可以被Timer计划的任务,所以可以将需要执行的任务放入其中,比如:
public TimerTask task=new TimerTask() //计时操作
{
@Override
public void run() {
//需要执行的任务
}
};
但是如果执行的任务是更新UI,由于TimerTask相当于是一个子线程,它不能直接去更新UI线程,所以要使用Handler方法去更新UI。
public TimerTask task=new TimerTask() //计时操作
{
@Override
public void run() {
Message msg = new Message();
msg.waht = 1;
handler.sendMessage(msg);
}
};
Handler的定义:
private Handler handler = new Handler(){
public void handleMessage(Message msg) {
super.handleMessage(msg);
if(msg.waht == 1){
//需要执行的任务;
}
}
};
然后就可以启动这个定时器了:
timer.schedule(task, 0, 20*60*1000);
第一个参数就是要执行的任务,第二个参数为0,表示没有延迟,第三个参数就是要定时的时间,例子中的定时时间为20分钟。