У меня есть функция 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 async task
intent = new Intent(this, OrdineCreaActivity.class);
this.startActivityForResult(intent, R.id.buttonPagamenti);
}
break;
...
Внутри AppHelper.isOnline()
, я запускаю AsyncTask
, который входит в систему, что делает сетевой запрос, который не может быть запущен в пользовательском интерфейсе, потому что в противном случае я получаю исключение. Мне нужно дождаться, когда он закончит ПЕРЕД продолжением кода внутри if. Как я могу это сделать?
Проблема заключается в том, что действие запускается первыми, затем выполняется AsyncTask
, поэтому, когда активность ожидает действительного сеанса входа в систему, он прерывается.