我对Handler
和HandlerThread
类的用法感到困惑。我尝试使用它们的原因是我想利用AudioRecord
类及其setRecordPositionUpdateListener
方法(reference)。方法说明中说:
这正是我想要的-在主线程中设置AudioRecord
,但在工作线程中接收数据。我想我需要一个HandlerThread
,所以我创建并开始了一个。我还定义了一个实现AudioRecord.OnRecordPositionUpdateListener
接口(interface)的回调方法。我希望从工作人员HandlerThread
调用此回调。我现在不了解的是如何创建Handler
传递给setRecordPositionUpdateListener
。
最佳答案
要将Handler
与某个线程关联,您应该通过在其constructor中传递相应的Looper
来创建它。因此,如果您已经有一个HandlerThread
,则可以通过以下方式完成:
Looper looper = myHandlerThread.getLooper();
Handler handler = new Handler(looper);
就是这样,只需在
setRecordPositionUpdateListener
方法中使用此处理程序,回调将在工作线程中执行。如果您需要有关Handler
,Looper
和HandlerThread
的更多说明,可以看看here。关于android - HandlerThread和Handler : how to use AudioRecord. setRecordPositionUpdateListener吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30259214/