java - Android 停止正在执行单个库函数的线程

标签 java android multithreading

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

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

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/

相关文章:

java - 安卓 : sms receiver is not working

android - SetContentView 不显示屏幕(还)?

python - 遇到同时连接到多个设备的多线程问题

java - PowerMock whenNew 不返回模拟实例

java - Android,SHA1 Base64 哈希并发布来自 WebView 的数据

java - Swingworker.done() 在完成后卡住 GUI 几秒钟

android - 如何确定联系人数据库中的哪一行已更新

android - 在纵向模式下锁定 android Activity 而不为每个 Activity 都这样做

python - 如何解决 Python 线程中这种奇怪的 MySQL 锁定行为?

python - 确定分配给作业的处理器数量