Comment reprendre l'activité au lieu de redémarrer quand il va “vers le haut” de la barre d'action

J'ai deux activités. Dire Activity A et Activity B.


De Activity A je clique sur un bouton pour lancer Activity B C'est le code que j'utilise pour ceci:

Intent intent = new Intent(this, ActivityB.class);
this.startActivity(intent);


Maintenant, en ce moment, je suis dans Activity B. Sur la sur la méthode de création de Activity B, j'ai activer le bouton up.

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_view_news);

    getActionBar().setDisplayHomeAsUpEnabled(true); //Here//
}

et sur la poignée d'événement pour les boutons "up", j'ai ce code:

public boolean onOptionsItemSelected(MenuItem item){
     switch (item.getItemId()) {
        case android.R.id.home:
            finish();
            NavUtils.navigateUpFromSameTask(this);
        default:
            return super.onOptionsItemSelected(item);
    }
}


Maintenant, je décide de retourner à Activity A je clique sur le bouton dans la barre d'action qui ressemble à ceci: Comment reprendre l'activité au lieu de redémarrer quand il va “vers le haut” de la barre d'action

Maintenant le problème c'est que quand je clique sur le "bouton", il va revenir à Activity A qui est bien, mais il redémarre il. Comment le faire arrêter de redémarrer? J'ai juste envie de reprendre.

Lorsque j'utilise mon bouton de retour, il fonctionne comme prévu. j'.e, il va à Activity A et reprend au lieu de redémarrer il.

Je veux que ma reprise de l'activité en raison de cette activité, j'ai télécharger une chaîne de caractères en ligne et donc je ne veux pas de garder les re télécharger les données lorsqu'un utilisateur passe de Activité B -> Activité


Modifier Mon fichier de manifeste pour Activity B section ressemble à ceci:

<activity
    android:name="com.example.android.ActivityB"
    android:label="@string/title_activity_view_news"
    android:parentActivityName="com.example.android.ActivityA">
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value="com.example.android.ActivityA" />
</activity>


Edit 2 [Répondre]
Ok, donc, c'était assez inattendu, mais dans mon AndroidManifest.xml dans l'Activité d'Une section, j'ai dû ajouter la ligne suivante de la doublure. android:launchMode="singleTop" de sorte qu'il ressemble maintenant à ceci:

<activity
    android:name="com.example.android.ActivityA"
    android:label="@string/app_name" 
    android:launchMode="singleTop"> //**HERE**//
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

L'explication de ce qui est donné ici

  • êtes-vous déclarer ActivityA en tant que Parent d'activité ?
  • Je crois que j'ai fait. Vérifier mon AndroidManifest.xml j'ai posté à la fin de ma question
  • vous ne savez pas si c'est ce que vous avez besoin, mais vous pouvez prendre un coup d'oeil: stackoverflow.com/a/16147110/3286163
  • Putain ce que c'était la solution tout le temps! Merci de m'avoir il y!
InformationsquelleAutor Krimson | 2014-02-15