Android的:如何停止的Runnable? [英] Android: How do I stop Runnable?
本文介绍了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;
}
};
但我不能访问杀()
的方法!
推荐答案
而不是实现自己的 thread.kill()
机制,使用由SDK提供的现有API。在<一个管理你的线程的创建href="http://developer.android.com/reference/java/util/concurrent/ExecutorService.html#submit%28java.lang.Runnable%29"相对=nofollow>线程池和使用的 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.
这篇关于Android的:如何停止的Runnable?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文