2

我有一个应用程序,它使用单独的线程来执行在单独库中的代码中执行的计算。我希望用户能够取消此操作,因为根据参数,它可能需要很长时间。

我不能使用停止变量或检查中断,因为从应用程序的角度来看,计算是单行的

public void run() {
    result = library.performCalculation(params);
}

我希望能够使用thread.stop(),但据我所知,这在 android 上是不可行的。

无论如何我可以导致线程停止运行吗?

4

2 回答 2

1

你是对的,Thread.stop()在 Android 上不可用(甚至在仍然支持它的系统上,它的问题超过了它的用处)。

你能做的有两方面。首先,调用thread.interrupt()以在运行库的线程上设置中断标志。其次,在适当的时候修改你的库以调用isInterrupted()以确定它是否被中断,如果是,它应该自愿清理并离开。

于 2012-08-28T20:13:24.380 回答
0

可以取消 AsyncTask。将其放入 AsyncTask 并调用

 AsyncTask.cancel(true);
于 2012-08-28T20:12:19.577 回答