У меня есть 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. Какой был бы лучший способ сделать это?
то, что вы запрашиваете, AsyncTask
цель AsyncTask
, так как AsyncTask
предполагает асинхронную работу с другими задачами приложения и завершение в фоновом режиме. Поэтому, если вы хотите подождать, пока эта задача закончится, не делайте ее AsyncTask
так просто.
Вопрос в том, почему вы когда-нибудь это делали?
Цель AsyncTask
- предоставить простой способ выполнить потенциально дорогостоящую задачу, чтобы она не блокировала поток пользовательского интерфейса. Из вашего вопроса кажется, что вы легко можете достичь своей задачи без использования многопоточности.
Вы действительно хотите запустить свою Activity
с помощью startActivityWithResult()
. Затем запустите новое действие, когда запущенная активность возвращает управление onActivityResult()
.
startActivityForResult()
вместо этого.