1.用Handler来实现
private static int UPDATE_INTERNAL = 1000;
private final static int UPDATE_MSG = 1;
private void startTimer(){
mHandler.removeMessages(UPDATE_MSG);
mHandler.sendEmptyMessage(UPDATE_MSG);
}
private void stopTimer(){
mHandler.removeMessages(UPDATE_MSG);
}
private Handler mHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
switch (msg.what){
case UPDATE_MSG:
Log.d("Test", " UPDATE_MSG");
sendEmptyMessageDelayed(UPDATE_MSG, UPDATE_INTERNAL);
break;
}
}
};
2.用postDelayed(Handler或View)和Runnable来实现
private void startTimer(){
mHandler.removeCallbacks(mRunnable);
mHandler.postDelayed(mRunnable,0);
}
private void stopTimer(){
mHandler.removeCallbacks(mRunnable);
}
private Runnable mRunnable = new Runnable() {
@Override
public void run() {
Log.d("Test", "POST UPDATE");
mHandler.postDelayed(this,UPDATE_INTERNAL);
}
};
3.Timer+TimerTask
4.CountDownTimer