Android: Как остановить Runnable?

Я пробовал вот так:

private Runnable changeColor = new Runnable() {
   private boolean killMe=false;
   public void run() {
       //some work
       if(!killMe) color_changer.postDelayed(changeColor, 150);
   }
   public void kill(){
       killMe=true;
   }
};

, но не могу получить доступ к kill () метод!

33
задан Marcin Orlowski 7 August 2015 в 23:02
поделиться

1 ответ

Можно Использовать этот путь

Остановка Выполнимый Поток //==============================================================================

 ThreadUtil.startTask(() -> {
                        // doTask
                    }, 1500);


//==============================================================================
 public class ThreadUtil {

        private static Handler handler;
        private static Runnable runnable;

        public static void startTask(IThreadTask iThreadTask, long delayTime) {
            stopTask();
            handler = new Handler();
            runnable = () -> {
                iThreadTask.doTask();
            };

            if (handler == null || runnable == null) {
                return;
            }

            handler.postDelayed(runnable, delayTime);

        }

        public static void stopTask() {
            try {
                handler.removeCallbacks(runnable);
                handler.removeCallbacksAndMessages(null);
                handler = null;
                runnable = null;

            }catch (Exception e){
                Log.e("ThreadUtil:","Error:"+e.toString());

            }

        }


        public interface IThreadTask {
            void doTask();
        }


    }
0
ответ дан 27 November 2019 в 17:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: