Mam funkcję, AppHelper.isOnline(Context context)
, wzywam różne części mojej aplikacji, aby sprawdzić, czy sesja nie przekroczyła limitu czasu przed wysłaniem żądania HTTP.Poczekaj na Android AsyncTask, aby zakończyć
public void onClick(View v) {
Intent intent = null;
switch (v.getId()) {
case R.id.buttonPagamenti:
if (AppHelper.isOnline(this))
{
//here AppHelper.isOnline should have finished it's async task
intent = new Intent(this, OrdineCreaActivity.class);
this.startActivityForResult(intent, R.id.buttonPagamenti);
}
break;
...
Wewnątrz AppHelper.isOnline()
, jestem wykonujący takie AsyncTask
że loguje się, dzięki czemu żądania sieciowe, które nie mogą być uruchamiane na interfejsie użytkownika, ponieważ w przeciwnym razie pojawia się wyjątek. Muszę poczekać, aż się zakończy, ZANIM powrócisz do kodu wewnątrz if. Jak mogę to zrobić ?
Problem to działanie rozpoczyna się jako pierwsze, następnie wykonuje się AsyncTask
, więc gdy działanie oczekuje prawidłowej zalogowanej sesji, ulega uszkodzeniu.
Próbowałem połączyć, ale problem jest async.exec() nie rozpoczyna się przed dołączeniem kopnięć, więc aplikacja trzyma się nieskończenie, jutro będzie spróbuj wykonać zadanie.get – max4ever
zadanie async ma okno dialogowe postępu, ale nie zatrzymuje ono nowej aktywności od uruchomienia – max4ever
task.get() jest właśnie tym, czego potrzebowałem, dzięki !!! – max4ever