Android:Timer Task查询

时间:2013-04-10 10:05:29

标签: android timertask

我有一个应用程序,基于一些点击我使用TimerTask()启动计时器。 但我也希望支持多个定时器以实现多次点击。 因此,如果一个计时器已经工作并且发出了另一个单击,那么它将启动一个单独的计时器线程,而不仅仅是取消第一个计时器。

有人可以帮忙吗?

@Override
public void onListItemClicked(int index, Map<String, Object> data) {
    timer = new Timer();
    timer.schedule(new TimerTask() {
         int n = 0;
         @Override
         public void run() {        
             if (++n == 300) {
                 timer.cancel();
             }
             timer = null;
         }
    },1000,1000);
}

1 个答案:

答案 0 :(得分:2)

你可以这样:

@Override
public void onListItemClicked(int index, Map<String, Object> data) {
    //you shouldn't have timer as class' property
    //if so your timer will cancel itself when you click again
    //local timer will be cancelled  when n is counted to 300 only
    Timer timer = new Timer();
    timer.schedule(new TimerTask() {
        int n = 0;
        @Override
        public void run() {

            if (++n == 300) {
                timer.cancel();
            }
            timer = null;
        }
    },1000,1000);
}