2013-06-12 2 views
1

J'ai 3 Activités: A, B, C.Android: résult un nettoyage Activité haut de BackStack

Je veux que les activités fonctionnent comme suit:

A startActivityForResult B; B peut démarrer C ou envoyer le résultat à A; C peut retourner à B ou envoyer le résultat à A.

Lorsque B envoie le résultat à A, B doit être retiré du backstack. Lorsque le résultat d'envoi C vers A, B et C doit être retiré du backstack.

Je ne suis pas en mesure d'envoyer résultat à A de C. Cela signifie que A doit être reusmed (pas recréés) et onActivityResult() doit être callled pour traiter résultat:

Je tryed avec ce code mais A est recréé et onActivityResult() n'est pas appelé !!

public class C extends Activity{ 
    sendResultToA(){ 
     Intent i = new Intent(getActivity(), A.class); 
     i.putExtra("dataBean", dataBean); 
     i.putExtra("args", "save"); 
     i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     getActivity().setResult(Activity.RESULT_OK, i); 
     startActivity(i); 
    } 
} 

Des idées pour résoudre ce problème? Merci

+0

afficher le code original. l'extrait ci-dessus ne compile pas – Blackbelt

Répondre

5

Oui, vous pouvez résoudre ce problème,

From Activity A -> startActivityForResult(ActivityB)

From Activity B -> startActivityForResult(ActivityC)

Si tous les succès mis le résultat par la suite.

Intent i = new Intent(); 
i.putExtra("dataBean", dataBean); 
i.putExtra("args", "save"); 
setResult(Activity.RESULT_OK,i); //pass your intent 
finish(); // Call finish to remove ActivityC from the stack 

Si vous obtenez du succès dans ActivityB, faites de même. Dans onActivityResult, vérifiez si le résultat a été accepté ou annulé en utilisant Activity.RESULT_OK et Activity.RESULT_CANCELED.

+0

Ok j'avais déjà pensé à cette solution, mais je pensais que ce n'était pas si lisse en raison de l'appel de 'onActivityResult()' dans B (inutile). Je voulais passer directement à A. Mais j'ai essayé tout de suite et ça marche très bien (B n'apparaît même pas un instant). Je vous remercie! – user1709805

+0

Aucun problème. Codage heureux – GoCrazy

Questions connexes