Это моя ситуация, я имел AsyncTask (1) которым запустить другой AsyncTask (2) Мне нужно, что AsyncTask (1) ждать недо AsyncTask (2) отделка, чтобы быть более ясным результатом AsyncTask (2) используется в результате AsyncTask (1)Родитель AsyncTask ждать ребенка в AsyncTask в
Я сделал этот трюк в AsyncTask (1):
protected void onPostExecute(Integer integer) {
Log.e(" nbr key : "+Utils1.nbr_cle,"");
Log.e("*=======*","Démarrage de l'application *=======*");
do {
try {
Thread.sleep(300);
Log.e("======>", "Not Finished yet !");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
while (!taskFinished);
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
в AsyncTask (2)
@Override
protected void onPostExecute(Integer integer)
{
super.onPostExecute(integer);
SplashActivity.taskFinished = true;
int myBox_size = activityBox.realm.where(MyBox.class).findAll().size();
Log.e("MyBox Finished ","Size of mybox :" +myBox_size);
}
, но это не работает:/
Любая причина, почему вы не можете просто использовать один AsyncTask вместо 2, чтобы обработать всю необходимую логику в фоновом потоке, а затем разместить его Результаты? Вы можете использовать CountDownLatch внутри нового потока в блоке try/catch/finally (наконец, блокировать обработку всех обновлений)? Передайте ссылку на CountDownLatch в каждую асинтезу, отсчитывая, когда каждый заканчивается). –
Слушайте bro, первая asynctask дает мне идентификатор, который я буду использовать для отправки запроса с использованием второй Asynctask, возможно ли это с помощью одной Asyncktask? – Euphor08
@ Eupho08, Это будет зависеть, если вы сделали блокирующий вызов? Я не знал, что мы связаны? Я предложил использовать сквозной подход, используя New Thread и CountDownLatch. –