Question

Voici la structure de ma candidature :

L'activité A est une ListViewActivity avec un bouton pour démarrer l'activité B.

Dans l'activité B, après avoir rempli un formulaire, il y a un bouton pour démarrer l'activité C.

L'activité C enregistre le paramètre et crée un nouvel enregistrement à afficher dans l'activité A.Le bouton Enregistrer dans l'activité C lance l'activité A.

Si l'utilisateur suit cette procédure plus d'une fois lorsqu'il appuie sur le bouton retour du A, l'activité revient sur le B (sans passer par le C car lorsque je l'ai démarré j'ai mis FLAG_ACTIVITY_NO_HISTORY) et la deuxième fois, il appuie à nouveau sur A, et cela se répète un nombre de fois égal au nombre d'enregistrements créés.

Fermer l'application avec le bouton Retour est devenu un long processus.

je voudrais le onBackPressed à partir de l'activité A, fermez toujours l'application.

L'anglais n'est pas ma langue, j'espère avoir été clair.

Était-ce utile?

La solution

Commencez toujours votre activité A comme ci-dessous

    Intent intent = new Intent(current_activity_context, A.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(intent);
    finish();

Autres conseils

La méthode finish() fera cela.Quelque chose comme ça

Intent intent = new Intent(getApplicationContext(),
                Activity B.class);
        Activity A.this.startActivity(intent);

        finish();

Vous devez remplacer la méthode OnBackPressed

@Override
public void OnBackPressed(){
    Intent intent = new Intent(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_HOME);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);
    super.onBackPressed();//Optional
 }

J'espère que cela aide.

essaye ça

@Override
public void onBackPressed() {
    // Do Here what ever you want do on back press;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top