HandlerThread
是 Android 中用于創(chuàng)建后臺線程的一個類,它繼承自 Thread
類。要實現(xiàn)線程間通信,我們可以使用 Handler
和 Looper
。下面是一個簡單的示例:
HandlerThread
對象并啟動它:HandlerThread handlerThread = new HandlerThread("MyHandlerThread");
handlerThread.start();
Handler
對象,將 handlerThread.getLooper()
作為參數(shù)傳遞給它。這樣,Handler
就會在 HandlerThread
中運行。Handler handler = new Handler(handlerThread.getLooper());
HandlerThread
中執(zhí)行任務(wù),可以使用 handler.post()
或 handler.sendMessage()
方法。例如,以下代碼在 HandlerThread
中執(zhí)行一個簡單的任務(wù):handler.post(new Runnable() {
@Override
public void run() {
// 在這里執(zhí)行你的任務(wù)
}
});
HandlerThread
中返回結(jié)果,可以使用 Handler
在主線程中接收消息。首先,創(chuàng)建一個主線程的 Handler
:Handler mainHandler = new Handler(Looper.getMainLooper());
HandlerThread
中的任務(wù)完成后,使用 mainHandler.post()
或 mainHandler.sendMessage()
方法將結(jié)果發(fā)送回主線程:handler.post(new Runnable() {
@Override
public void run() {
// 在這里執(zhí)行你的任務(wù)
// 當(dāng)任務(wù)完成時,將結(jié)果發(fā)送回主線程
mainHandler.post(new Runnable() {
@Override
public void run() {
// 在主線程中處理結(jié)果
}
});
}
});
這樣,你就可以使用 HandlerThread
和 Handler
實現(xiàn)線程間通信了。請注意,這只是一個簡單的示例,你可能需要根據(jù)你的需求進行調(diào)整。