我对HandlerHandlerThread类的用法感到困惑。我尝试使用它们的原因是我想利用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方法中使用此处理程序,回调将在工作线程中执行。如果您需要有关HandlerLooperHandlerThread的更多说明,可以看看here

关于android - HandlerThread和Handler : how to use AudioRecord. setRecordPositionUpdateListener吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30259214/

10-09 10:08