Ожидание асинхронного обратного вызова в Android IntentService

у меня естьIntentService которая запускает асинхронную задачу в другом классе и должна ждать результата.

Проблема в том, чтоIntentService закончится, как толькоonHandleIntent(...) метод закончил работу, верно?

Это означает, что обычноIntentService немедленно выключится после запуска асинхронной задачи и больше не будет там для получения результатов.

public class MyIntentService extends IntentService implements MyCallback {

    public MyIntentService() {
        super("MyIntentService");
    }

    @Override
    protected final void onHandleIntent(Intent intent) {
        MyOtherClass.runAsynchronousTask(this);
    }

}

public interface MyCallback {

    public void onReceiveResults(Object object);

}

public class MyOtherClass {

    public void runAsynchronousTask(MyCallback callback) {
        new Thread() {
            public void run() {
                // do some long-running work
                callback.onReceiveResults(...);
            }
        }.start();
    }

}

Как я могу сделать приведенный выше фрагмент? Я уже пробовал ставитьThread.sleep(15000) (произвольная продолжительность) вonHandleIntent(...) после запуска задания. Это похоже на работу.

Но это определенно не кажется чистым решением. Может быть, есть даже серьезные проблемы с этим.

Есть лучшее решение?

Ответы на вопрос(5)

Ваш ответ на вопрос