Android的:如何停止的Runnable? [英] Android: How do I stop Runnable?

查看:5791
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆