У меня есть функция, AppHelper.isOnline(Context context)
, я вызываю в разных частях моего приложения, чтобы проверить, что сеанс не был таймаутом, прежде чем делать запрос HTTP.Android wait AsyncTask для завершения
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;
...
Внутри AppHelper.isOnline()
, я уверен, выполнение в AsyncTask
, что входит в систему, таким образом делая сетевой запрос, который не может быть запущен на пользовательском интерфейсе, потому что в противном случае я получаю исключение. Мне нужно дождаться, когда он закончит ПЕРЕД продолжением кода внутри if. Как я могу это сделать ?
Проблема заключается в том, что действие начинается с первого, затем выполняется AsyncTask
, поэтому, когда активность ожидает действительного входа в систему, он прерывается.
Я пробовал соединение, но проблема заключается в том, что async.exec() не запускается до того, как соединение начнет работать, поэтому приложение будет оставаться неопределенно, tommorow собирается попробовать задачу.get – max4ever
задача async имеет диалог выполнения, но она не останавливает запуск нового действия – max4ever
task.get() - это то, что мне нужно, спасибо !!! – max4ever