Android, дождитесь окончания активности в асинхронном режиме

1

У меня есть AsyncTask, в котором действие запускается во время doInBackground:

private class startupTask extends AsyncTask<Void, Void, Void> {
    @Override
    protected Void doInBackground(Void... params) {
        Intent intent = new Intent(StartupActivity.this, LoginConnectorActivity.class);
        intent.putExtra("account", account);
        startActivity(intent);
        return null;
    }
}

Я хочу подождать, пока вызванная деятельность завершится, прежде чем разрешить завершение работы AsyncTask. Какой был бы лучший способ сделать это?

Теги:
multithreading
android-asynctask

2 ответа

3
Лучший ответ

то, что вы запрашиваете, AsyncTask цель AsyncTask, так как AsyncTask предполагает асинхронную работу с другими задачами приложения и завершение в фоновом режиме. Поэтому, если вы хотите подождать, пока эта задача закончится, не делайте ее AsyncTask так просто.

  • 0
    Хорошо, спасибо, я найду другой путь.
  • 1
    Кажется, что вы хотите использовать startActivityForResult() вместо этого.
3

Вопрос в том, почему вы когда-нибудь это делали?

Цель AsyncTask - предоставить простой способ выполнить потенциально дорогостоящую задачу, чтобы она не блокировала поток пользовательского интерфейса. Из вашего вопроса кажется, что вы легко можете достичь своей задачи без использования многопоточности.

Вы действительно хотите запустить свою Activity с помощью startActivityWithResult(). Затем запустите новое действие, когда запущенная активность возвращает управление onActivityResult().

Ещё вопросы

Сообщество Overcoder
Наверх
Меню