J'ai une fonction, AppHelper.isOnline(Context context)
, je l'appelle dans les différentes parties de mon application pour vérifier qu'une session n'a pas de délai d'attente avant de faire une requête 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;
...
À l'intérieur d' AppHelper.isOnline()
,, je suis de l'exécution d'une tâche asynchrone qui se connecte, rendant ainsi à une demande du réseau, qui ne peuvent pas être exécutées sur l'INTERFACE utilisateur parce que sinon, j'obtiens une exception. J'ai besoin d'attendre qu'il ait fini AVANT de reprendre avec le code à l'intérieur de la si. Comment puis-je faire cela ?
Le problème est le début de l'activité les premières, puis les async exécute, donc lorsque l'activité s'attend à un valide enregistré dans la session, il se casse.