我有一个应用程序,它使用一个单独的线程来执行在一个单独的库中的代码中执行的计算。我希望用户能够取消此操作,因为根据参数,这可能需要很长时间。
我不能使用停止变量或检查中断,因为从应用程序的角度来看,计算是单行的
public void run() {
result = library.performCalculation(params);
}
我希望能够使用 thread.stop()
但据我所知这在 android 上是不可能的。
有没有办法让线程停止运行?
最佳答案
你是对的,Thread.stop()
在 Android 上不可用(即使在仍然支持它的系统上,它的问题也超过了它的用处)。
您可以做两方面的事情。首先,调用 thread.interrupt()
以在运行您的库的线程上设置中断标志。其次,在适当的点修改你的库以调用isInterrupted()
来判断它是否被中断,如果是,它应该主动清理并离开。
关于java - Android 停止正在执行单个库函数的线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12166790/