【发布时间】:2016-02-24 18:11:56
【问题描述】:
我已通过aidl 接口将活动绑定到远程服务。各种其他活动也与之相关。一段时间后,呼叫被阻止。当我打开该特定活动时,它会启动一个处理程序线程,并通过aidl 接口调用一些远程方法。但是它们被阻塞了,所以线程也被阻塞了。在 onDestroy() 方法中,我正在尝试执行 handlerthread.quit(),但线程没有停止。因此,每次我启动活动线程时都会启动但不会在破坏活动时停止。
我的问题是如何停止处于阻塞状态的处理程序线程?
【问题讨论】:
-
您的aidl 接口需要有“oneway”非阻塞方法调用,这些方法调用会立即返回 - 在您的“oneway”方法调用的构造函数中为您的处理程序定义一个“回调”。
-
你试过 thread.interrupt() 吗?
-
@user3549047 我试过打断。但是线程并没有停止。
-
它似乎在“onTransact”中被阻塞,等待远程绑定线程响应。
标签: android aidl android-handlerthread