2017-01-26 8 views
-1

UPDATE: Код работает только с тем, что я запустил текстовое представление, но на этот вопрос ответил, поэтому я тоже не могу его удалить. Поэтому я оставлю этот вопрос так же, как и для любого, кто пытается реализовать Timertask с handler, который использует Looper.getMainLooper, который напрямую подключается к UI THREAD.Timer task implementation handler

OLD QUERY: Привет, ребята, я пытаюсь реализовать таймер, выполняющий задачу с обработчиком. Я использую его для обновления пользовательского интерфейса каждую секунду. Это то, что я реализую:

private void setRepeatingAsyncTask() { 

     handler = new Handler(Looper.getMainLooper()); 
     timer = new Timer(); 

     TimerTask task = new TimerTask() { 
      @Override 
      public void run() { 
       handler.post(new Runnable() { 
        public void run() { 
         try { 
           i++; 
          tview.setText(String.valueOf(i)); 
         } catch (Exception e) { 
          // error, do something 
         } 
        } 
       }); 
      } 
     }; 

     timer.schedule(task, 0, 1000); // interval of one minute 

    } 

, когда я делаю setRepeatingAsyncTask() на создание или где-нибудь еще, как кнопка clicklistner, и т.д. либо таймер или обработчик не запускается. Пожалуйста, помогите новым для android!

+0

1000 составляет 1 сек, а не 1 минута – W4R10CK

+2

@ W4R10CK Нету 1000 1 сек это в мс PS: не заметьте комментарий –

+0

Я говорю то же самое. но размещение ошибки ',' – W4R10CK

ответ

0

Я использовал Handler обработать задачу каждые 1 сек, используя только Handler:

final Handler handler = new Handler(); 
    handler.postDelayed(new Runnable() { 
     public void run() { 

      //some task 

      handler.postDelayed(this, 1000); //looping is every 1 secs 
     } 
    }, 0); //initial delay of 0 
+0

Я пробовал делать это, как ваш путь, но есть небольшая задержка в обновлении пользовательского интерфейса, который я не хочу. Также есть эта новая вещь Looper, которую я пытаюсь сделать –

+0

Возможно, задержка связана с тем, что ваш пользовательский интерфейс большой или цикл очень быстрый. – W4R10CK

+2

получил мой код, который был просто ошибкой, должен по крайней мере, уведомили журнал о моем исключении, сожалею, что все, что я могу сказать, bdw ваш также полезен, поскольку он прямо вперед для выполнения простых вещей. спасибо за ваше время :) –

Смежные вопросы