J'ai une logique métier qui nécessite de garder une boîte de dialogue d'alerte affichée lorsqu'une transition se produit et qu'une activité est détruite et une autre créée.
L'activité détruite est celle qui lance la boîte de dialogue d'alerte.
J'ai fait quelques recherches par moi-même et je n'ai trouvé aucune solution fiable.
Si vous connaissez une solution ou des solutions de contournement qui pourraient m'aider, ce sera formidable.
3 Réponses :
Vous pouvez essayer de cette façon
public abstract class BaseActivity extends AppCompatActivity { protected void showProgressDialog(String message) { AlertDialog.Builder alert = new AlertDialog.Builder(this); alert.setCancelable(false); alert.setTitle("your title"); alert.setMessage(message); alert.create().show(); } }
Étend cette BaseActivity
dans vos deux activités.
appelez la méthode showProgressDialog ()
pour afficher votre message d'alerte dans FirstActivity
et lorsque FirstActivity
est détruit
puis appelez-le depuis SecondActivity .
J'espère que cela vous aidera. Bon codage.
Je construis généralement ma boîte de dialogue en lui donnant une référence à l'activité en cours. Et c'est ainsi au moins ce que le guide nous dit de faire. Donc ma réponse rapide est NON VOUS NE POUVEZ PAS.
Cependant, une alternative est en place. Au lieu de créer deux activités différentes, placez-les dans deux fragments différents. Chargez-les dans une seule activité où vous pouvez accrocher votre boîte de dialogue. À partir de votre activité, vous pouvez basculer entre vos deux fragments sans avoir à fermer votre boîte de dialogue car l'activité ne sera pas détruite lors du changement de fragment.
c'était la solution à laquelle j'ai pensé en premier mais l'implémentation actuelle nécessite beaucoup de refactorisation pour la changer, mais ce sera probablement la solution
nous avons tous ce seul patron qui ne comprend pas notre douleur. :)
Ceci est ma suggestion pour référence seulement
comme autorisé, vous pouvez commencer par exécuter une activité entièrement transparente, puis définir la boîte de dialogue au niveau du système instant et l'instanciation Dialgo dans votre application personnalisée, et vous pouvez afficher et fermer la boîte de dialogue par votre application
comme cette hiérarchie : TransparentActivity (activité MainLauncher) -> Activity1 -> Activity2
vous pouvez afficher Dialog lorsque Activity1 détruit et le fermer lorsque Activity2 est créé par votre application.
En fait, Dialog est attaché à TransparentActivity , donc vous devez remplacer l'événement du bouton Précédent pour éviter de revenir à TransparentActivity.
pourquoi ne pas afficher votre boîte de dialogue d'alerte dans la deuxième activité (qui est visible)?
il doit être affiché sur les deux. car il doit être affiché un certain temps lors de la première activité et un certain temps après le début de la deuxième
prendre 1 activité et les écrans comme fragments, afficher le dialogue en activité
Est-il mis en œuvre maintenant