J'ai une application avec 3 activités.
J'ai l'activité principale. Cela appelle la deuxième activité, qui appelle ensuite la troisième activité. Je veux retourner à l'activité principale sans entrer dans onCreate.
C'est le code de la troisième activité:
startActivity(new Intent(TerceraActiviry.this, Main.class));
Si votre Activity
est toujours en cours d'exécution, ce code le mettra au premier plan sans entrer onCreate
Intent openMainActivity= new Intent(TerceraActiviry.this, Main.class));
openMainActivity.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivityIfNeeded(openMainActivity, 0);
pour revenir à l'activité précédente, vous devez terminer celle visible, utilisez ceci:
finish();
Si l'activité a été lancée pour un résultat, vous devez alors donner un résultat, comme ceci:
Intent intent = new Intent();
intent.putExtra(KEY_RESPONSE, responseData);
setResult(RESULT_OK, intent);
finish();
Et vous devriez voir le résultat sur l'activité de l'appelant en utilisant:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
// Test for the code you have used to start the Activity
}
}
J'espère que ça aide, Cordialement
Vous démarrezActivityForResult au lieu de startActivity.
référez-vous le dev Android pour plus d'informations ici .
Le drapeau de mode de lancement que vous voulez est clearTop. Cela permet de revenir à l'instance précédente de l'activité principale et d'effacer les deuxième et troisième activités de la pile d'activités. Par exemple, pour ce faire à partir du code:
Intent intent = new Intent(TerceraActiviry.this, Main.class));
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);