Все, что вам нужно сделать, это создать Handler
в потоке пользовательского интерфейса:
private Handler serviceHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
someFunctionInTheUIThread();
}
};
, а затем передать его в службу.У вас может быть такая функция в Сервисе:
public void registerHandler(Handler serviceHandler) {
handler = serviceHandler;
}
, а затем передать обработчик следующим образом:
theService = ((LocalBinder) service).getService();
theService.registerHandler(serviceHandler);
, а затем отправить сообщение обратно:
Message msg = handler.obtainMessage(IDENTIFIER, "Message or data");
handler.sendMessage(msg);