J'ai une activité dans l'application android et à partir de là j'appelle une méthode d'une classe AsyncTask qui appelle un webservice. Je veux réinitialiser/recharger mon activité sur la base du résultat obtenu avec cette méthode. Comment puis-je réinitialiser mon activité à partir de ce cours?Réinitialiser l'activité Android
1
A
Répondre
2
Vous pouvez essayer ce qui suit
Passe appeler contexte d'activité à votre AsyncTask dans le constructeur et l'enregistrer dans un contexte variable contexte.
Ensuite, dans votre méthode PostExecute de AsyncTask, écrire des lignes suivantes:
Intent targetIntent = new Intent(context, TargetActivity.class);
// Add your data to intent
targetIntent.putExtra("intent_extra_key", "intent_extra_value");
context.startActivity(targetIntent);
((Activity) context).finish();
revenir pour toute question.
+0
merci ... –
0
Exemple:
Remarque: Supprimer le commentaire et supprimer ou utiliser commentaire pour startActivity (i); dans onPostExecute (Boolean aBoolean) si vous voulez tester l'exemple de code ci-dessous sans le changer.
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new LoadFromWebAsyncTask(this).execute();
}
private class LoadFromWebAsyncTask extends AsyncTask<Void, Void, Boolean> {
MainActivity activity;
LoadFromWebAsyncTask(MainActivity activity) {
this.activity = activity;
}
@Override
protected Boolean doInBackground(Void... params) {
return true;
}
@Override
protected void onPostExecute(Boolean aBoolean) {
super.onPostExecute(aBoolean);
activity.finish();
Intent i = new Intent(MainActivity.this, MainActivity.class);
startActivity(i);
/* final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
activity.finish();
Intent i = new Intent(MainActivity.this, MainActivity.class);
startActivity(i);
}
}, 5*1000);*/
}
}
}
Pourquoi voudriez-vous recréer une activité? pourquoi ne pas simplement définir les données provenant du service –
Vous pouvez utiliser 'EventBus' pour mettre à jour le fil d'activité après que' AsyncTask' soit terminé. –
Le service vient de poster des données et renvoie 0/1. Je n'ai pas accès aux contrôles pour définir les données dans cette classe. –