J'utilise une activité singleTop pour recevoir les intentions d'un dialogue de recherche via onNewIntent()
.
Ce que j'ai remarqué, c'est que ça onPause()
s'appelle avant onNewIntent()
, et ensuite ça appelle onResume()
. Visuellement:
- boîte de dialogue de recherche lancée
- intention de recherche renvoyée à l'activité
onPause()
onNewIntent()
onResume()
Le problème est que j'ai des écouteurs enregistrés onResume()
qui sont supprimés onPause()
, mais ils sont nécessaires à l'intérieur de l' onNewIntent()
appel. Existe-t-il un moyen standard de rendre ces auditeurs disponibles?
Intent
dansonResume()
, votre activité va probablement essayer d'exécuter une recherche à chaque fois qu'il reprend, sans doute pas le comportement que vous voulez.Remarque: L'appel d'une méthode de cycle de vie à partir d'une autre méthode n'est pas une bonne pratique. Dans l'exemple ci-dessous, j'ai essayé de faire en sorte que votre onNewIntent soit toujours appelé quel que soit votre type d'activité.
OnNewIntent () est toujours appelé pour les activités singleTop / Task sauf pour la première fois lorsque l'activité est créée. A ce moment, onCreate est appelé à fournir une solution pour quelques requêtes posées sur ce fil.
Vous pouvez toujours invoquer onNewIntent en le mettant dans la méthode onCreate comme
la source