Я пробовал вот так:
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 ()
метод!
Остановка Выполнимый Поток //==============================================================================
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();
}
}