Android实现定时器的两种方法。
1、采用Handler与线程sleep的方法。
2、与采用HandlerTimerTask的方法。
现附上代码通过三种方法实现每秒钟更新一次时间的操作:
首先新建Handler,进行处理相应动作
<span style="white-space:pre"></span>private final Handler mhandler = new Handler()
{
@Override
public void handleMessage(Message msg)
{
// TODO Auto-generated method stub
super.handleMessage(msg);
switch(msg.what)
{
case CLOCK_TIME_CHANEGE:
setDateAndTime();
break;
}
}
};
1、采用Handler与线程sleep的方法。
public class MyThead implements Runnable然后在改启动它的地方启动它
{
public void run()
{
// TODO Auto-generated method stub
while(true)
{
try
{
Thread.sleep(1000);
mhandler.sendEmptyMessage(CLOCK_TIME_CHANEGE);
} catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
new Thread(new MyThread()).start();
这样就可以了,就是开启一个线程,在线程中是一个死循环,在循环中没1钟后发生一个Message。
2、与采用HandlerTimerTask的方法。
新建一个Timer与TimerTask,每秒钟发送一个Message出来。
<span style="white-space:pre"></span>Timer mTimer = new Timer();schedule方法的意思是,在0秒后,每秒钟执行一次mTimerTask。
TimerTask mTimerTask = new TimerTask()
{
@Override
public void run()
{
// TODO Auto-generated method stub
Log.d("Javen","send Message");
mhandler.sendEmptyMessage(CLOCK_TIME_CHANEGE);
}
};
mTimer.schedule(mTimerTask, 0, 1000);