我在我的Service類中使用一個Handler來完成一些後臺工作,但是當它完成時,我必須在Service的線程上執行一些代碼。這裏是我的代碼:如何從服務啓動的處理程序跳轉到服務的線程?
我在Service的onCreate方法中創建一個處理程序。
HandlerThread handlerThread = new HandlerThread(getPackageName());
handlerThread.start();
Looper looper = handlerThread.getLooper();
mHandler = new Handler(looper);
我如何使用處理程序。這個方法在會話中被調用了幾十次。
mHandler.post(new Runnable() {
@Override
public void run() {
// It takes a few seconds to execute this method,
// so it must be running on a separate thread.
Object o = superMethod();
// However, this MUST be called from the Service's thread.
useObject(o);
}
};)
那麼我該如何回到服務的線程呢?
默認情況下,服務在主線程上運行,即Android中的UI線程,因此您可以使用runOnUiThread()方法。 – Rahul
它不會繼承任何種類的runOnUiThread()方法。據我所知,只有活動有這種方法。 – MisterCereal