web-dev-qa-db-fra.com

Reprendre l'activité dans Android

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));
16
Sárzena

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);
44
ThePCWizard

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

2
Spike777

Vous démarrezActivityForResult au lieu de startActivity.

référez-vous le dev Android pour plus d'informations ici .

1
Gan

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);
0
kingraam