У меня есть функция, AppHelper.isOnline(Context context)
, я вызываю различные части своего приложения, чтобы проверить, не истекло ли время ожидания сеанса, прежде чем сделать HTTP-запрос.
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
, поэтому, когда действие ожидает действительный зарегистрированный сеанс, оно прерывается.