2016-01-23 2 views
0

Так что я пытаюсь автоматически обновлять изображение каждые 2 секунды. Я попробовал метод обработчика/таймера, но я запутался, как назвать это и по какой-то причине не может получить его на самом деле обновить ...Автоматическое обновление изображения каждые 2 секунды android

private void refreshPicture(final String refreshRate, final String userName, final String userPicture) { 

    final Handler timerHandler = new Handler(); 
    Runnable timerRunnable = new Runnable() { 

     @Override 
     public void run() { 
      long millis = Long.parseLong(refreshRate); 
      int seconds = (int) (millis/1000); 
      int minutes = seconds/60; 
      seconds = seconds % 60; 

      //my method where i refresh image 
      getUserPicture(userName, userPicture); 

      timerHandler.postDelayed(this, 500); 
     } 
    }; 
} 

ответ

3

Вы забыли инициировать первый вызов работоспособный. После определения timerRunnable вам необходимо позвонить timerHandler.post(timerRunnable); один раз. Кроме того, если вы хотите, чтобы он обновлялся каждые 2 секунды, вам нужно поставить 2000 вместо 500 как значение в postDelayed().

Не забудьте позвонить timerHandler.removeCallbacks(timerRunnable), если вы хотите прекратить освежать.

+0

Вау, не могу поверить, что я пропустил это. Спасибо за ответ и указав его, работает как шарм. Предположим, что пользователь выходит из приложения (но он все еще находится в фоновом режиме), означает ли это, что он будет продолжать вызываться, если я не поставлю timerHandler.removeCallbacks (timerRunnable) в методе onPause? – AndroidDev21921

+1

Да, если приложение не будет убито системой. – patloew

+0

Gotcha, спасибо за ответ! – AndroidDev21921

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