翻譯自:http://android-developers.blogspot.sg/2007/11/stitch-in-time.html?m=0
1.利用TimerTask實現(xiàn)任務(wù)的定時執(zhí)行
TextView shoothzj;
int count = 0;//用于計數(shù)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
shoothzj = (TextView) findViewById(R.id.shoothzj);
Timer timer = new Timer();//新建一個Timer
timer.schedule(new UpdateTimeTask(),100,200);
//通過schedule方法執(zhí)行一個TimerTask,Timertask是一個抽象類贫悄,必須重寫它的run方法肤京。
//task,long a,long b代表的是先等待a毫秒的延遲執(zhí)行任務(wù)味榛,然后每次等待大約b時間執(zhí)行任務(wù)豆混。
}
class UpdateTimeTask extends TimerTask{
@Override
public void run() {
count++;
runOnUiThread(new Runnable() {
@Override
public void run() {
shoothzj.setText("這是"+"第"+count+"次");
}
});
}
}
2.利用Handler實現(xiàn)定時任務(wù)的操作
TextView shoothzj;
int count = 0;
private Handler mHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mHandler = new Handler();//初始化handler
shoothzj = (TextView) findViewById(R.id.shoothzj);
mHandler.postDelayed(new UpdateTimeTask(),200);//延遲200灼伤,執(zhí)行這個任務(wù)
}
class UpdateTimeTask extends TimerTask{
@Override
public void run() {
count++;
runOnUiThread(new Runnable() {
@Override
public void run() {
shoothzj.setText("這是"+"第"+count+"次");//執(zhí)行完畢
mHandler.postDelayed(new UpdateTimeTask(),100);//延遲100锄码,再執(zhí)行這個任務(wù)
}
});
}
}
如果你想要取消這個post事件夺英,你可以使用handler的removeCallbacks(TimerTask task)方法晌涕。