Как удалить Handler из адаптера - PullRequest
0 голосов
/ 13 декабря 2018

Я использую функцию в адаптере, и я добавил обработчик для обновления каждые 2 секунды, как показано ниже:

 final Handler refreshHandler = new Handler();
 Runnable runnable = new Runnable() {
     @Override
     public void run() {
         refreshHandler.postDelayed(this, 2000);
         myfunction();
     }
 };
 refreshHandler.postDelayed(runnable, 2000);

Когда я не нахожусь во фрагменте, где я развертываю адаптер, обработчиквсегда перезагружается.

Итак, мой вопрос, как остановить обработчик каждый раз, когда я завершаю фрагмент?

1 Ответ

0 голосов
/ 13 декабря 2018

Я думаю, вы должны использовать метод removeCallbacks(Runnable r).

Вот как вы вставите это в свой код:

      final Handler refreshHandler = new Handler();
 Runnable runnable = new Runnable() {
     @Override
     public void run() {
         refreshHandler.postDelayed(this, 2000);
         myfunction();
     }
 };
 refreshHandler.postDelayed(runnable, 2000);


@Override
public void onDestroy () {

    refreshHandler.removeCallback(runnable);
    super.onDestroy ();

}

Что-то подобное, где вы хотите.Надеюсь, вы понимаете

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...