应用:执行重复任务,Timer是线程安全的
int timer_state = 1;
Timer timet;
boolean stop = false; //线程停止
int time = 0; //定时器
//执行任务的地方
timet = new Timer();
timet.execute();
//实现
class Timer extends AsyncTask<Void, Integer, Void> {
@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
int sec = 90;
while (!stop) {
try {
++time;
publishProgress();
if (sec-- % 10 == 0) {
// //写需要重复执行的任务
}
if (timer_state == 2) {
break; //停止定时器
}
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
}
@Override
protected void onPostExecute(Void result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
}
protected void onProgressUpdate(Integer... values) {
// TODO Auto-generated method stub
super.onProgressUpdate(values);
//residue_second.setText(values[0]+"S");
//... 表示以数组的形式接收参数,即可以传递多个参数
//这里也有可能?执行重复任务
tipText.setText("正在为您寻找车辆,等待 " + time + " 秒");
}
}
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
//super.onBackPressed();
}
//离开此Activity或者在onDestory()方法中设置timer_state = 1;