我的Android应用程序使用第三方库,我使用的方法之一是长时间运行,所以我从一个单独的线程调用它。
问题
在某些情况下方法从一个单独的线程调用挂起(确认该库的错误),结果我的线程停止。
据我所知,没有办法杀死Android / Java中的线程。停止/完成线程的正确方法是中断线程并正确处理“中断”异常。但是由于问题出现在我无法控制的第三方,我最终得到了空闲/处理线程。
为了解决这个问题,我实现了检测这种情况并“绕过”它的逻辑,以便我的应用程序正常运行。但我担心我的线程会挂起并保留一些资源。
问题:
谢谢,欢迎任何想法!
答案 0 :(得分:1)
你的第一个问题答案是肯定的。拥有额外的,不相关的线程可能会影响其他应用程序(内存使用等)
第二个答案是否定的。所以你最终得到了额外的,无关紧要的线程。 (称为catch22。)
我管理了几个多线程/任务框架,我完全按照你的方式做了。它被称为expunging一个线程。如果它没有响应并且可能永远挂起那么你可以做的最好就是忽略它并且可能用新线程替换它,只要expunge / replace的循环本身不会引起问题。问题在于额外的线程会对其他应用程序产生负面影响。