TimerTask task = new TimerTask()
{
public void run()
{
//逻辑
}
};
Timer timer = new Timer();
timer.schedule(task, 500 , 500);
如上:就是一个简单的计时器使用,表示从0.5秒后,每隔0.5秒响应一次计时器里面的逻辑。
timer.schedule(task, 500 , 500); //0.5秒后,每隔0.5秒循环
timer.schedule(task, 500);//0.5秒后响应一次
当需要使用计时器调用N(N>1 && N < 无限)次逻辑的时候,就需要设置停止。
如果是知道需要循环的次数,可以使用timer.schedule(task, 500);
例1:
int i = 0;
while(i < 10)
{
TimerTask task = new TimerTask()
{
public void run()
{
//逻辑
}
};
Timer timer = new Timer();
timer.schedule(task, 500 * i);
}
表示执行10次逻辑,间隔时间为0.5秒
例2:
private Timer timer;
TimerTask task = new TimerTask()
{
int i = 0;
public void run()
{
//逻辑
if(i < 10)
{
Message msg = new Message();
msg.what = 0;
handler.sendMessage(msg);
}
i++;
}
};
timer = new Timer();
timer.schedule(task, 500 , 500);
//线程
Handler handler = new Handler()
{
@Override
public void handleMessage(Message msg)
{
super.handleMessage(msg);
if (msg.what == 0)
{
timer.cancel(); //停止计时器
}
}
};
同样是执行10次逻辑运算后停止计时器,例二运用的很广,使用cancel()可以人为的提前停止计时器。具体用法自己体会