被網路上的一堆Timer的教程騙了!!
通常Timer幾乎都要配上TimerTask
如果不這麼做的話表示你不用停止Timer
那你就不需要用到TimerTask了
在網路上找資料的時候幾乎都會看到為什麼會閃退
原是就是因為你Timer.cancel後就不能再Timer.schedule了
這裡有很不錯的範例
http://blog.csdn.net/snowdream86/article/details/7072530
再貼上他比較簡潔的code
TimerTask timerTask;
Timer timer;
private void startTimer(){
if(timer == null){
timer = new Timer();
}
if(timerTask == null){
timerTask = new TimerTask() {
@Override
public void run() {
sendUpdateIntent(UpdateIntentService.UPDATE_POSITION_TRACKING);
}
};
}
if(timer != null && timerTask != null ) {
timer.schedule(timerTask, 1000, 8000);
}
}
private void stopTimer(){
if(timer != null){
timer.cancel();
timer = null;
}
if(timerTask != null){
timerTask.cancel();
timerTask = null;
}
}
沒有留言:
張貼留言