Comment garder une seule instance d'activité, mais être en mesure de mettre à jour la vue?
Dans ma situation, il existe un cas dans lequel je dois m'assurer que l'activité ne lance qu'une seule à la fois.
J'ai trouvé si je mets le LauchMode
de l'activité, je peux atteindre l'instance unique but, mais il ne sera pas mise à jour le point de vue de l'activité.
Cette activité est lancé par startActivityForResult
, et de nous envoyer l'URI avec l'intention de l'activité.
Nous allons discuter avec ce certains cas:
-
galerie - lauch cette activité avec imageA.
-
caméra - lauch cette activité avec imageB.
Ma demande n'est pas de détruire l'ancienne activité, mais l'activité qui vient de recevoir la nouvelle intention d'informations doit actualiser l'affichage.
J'ai trouvé une nouvelle méthode, onNewIntent
.
Cette méthode peut actualiser l'intention avant de reprendre. Je vais l'essayer.
- Pourquoi est-il si important que l'activité maintient en vie? Je pense que c'est impossible.
- c'est parce que si il y a deux instance d'activité, va poser un problème dans notre application. j'ai donc besoin de s'assurer,c'est l'instance unique.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez avoir une Activité avec un manifeste de l'attribut de l'instance unique.
Dès que l'activité est relancée , onResume est appelée. Vous pouvez mettre à jour la vue avec la nouvelle image et d'invalider les plus âgés de Vue.
Dans votre manifeste, l'utilisation
android:launchMode="singleTask"
au lieu deandroid:launchMode="singleInstance"
. À l'aide de instance unique renvoie uniquement à l'instance existante si elle est au sommet de la pile. singleTask, d'autre part, le retour à l'instance existante de l'activité, car il est toujours à la racine de la tâche.Puis, lorsque votre instance est lancée, remplacer
onNewIntent
de mettre à jour votre INTERFACE utilisateur selon la nouvelle intention.Reportez-vous à le Andorid documentation pour plus de détails.