我想是这样的:
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;
}
};
但我不能访问杀()
的方法!
而不是实现自己的 thread.kill()
机制,使用由SDK提供的现有API。在线程池和使用的 Future.cancel()杀死正在运行的线程:
Instead implement your own thread.kill()
mechanism, using existing API provided by the SDK. Manage your thread creation within a threadpool, and use Future.cancel() to kill the running thread:
ExecutorService threadPoolExecutor = Executors.newSingleThreadExecutor();
Runnable longRunningTask = new Runnable();
// submit task to threadpool:
Future longRunningTaskFuture = threadPoolExecutor.submit(longRunningTask);
... ...
// At some point in the future, if you want to kill the task:
longRunningTaskFuture.cancel(true);
... ...
取消方法的行为有所不同根据您的任务运行状态,检查API的更多细节。
Cancel method will behave differently based on your task running state, check the API for more details.