Android实现定时器的两种方法

时间:2022-04-04 00:24:32

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();
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);
schedule方法的意思是,在0秒后,每秒钟执行一次mTimerTask。