Est-ce une bonne pratique de recharger un Activity
dans Android ?
Quelle serait la meilleure façon de procéder? this.finish
puis this.startActivity
avec l'activité Intent
?
android
android-activity
hpique
la source
la source
Réponses:
Vous pouvez simplement utiliser
pour rafraîchir un
Activity
de l'intérieur de lui-même.la source
pour ceux qui ne veulent pas voir ce clignotement après la méthode recreate () , utilisez simplement
la source
C'est ce que je fais pour recharger l'activité après avoir changé en revenant d'un changement de préférence.
Cela provoque essentiellement l'activité de se redessiner.
Mise à jour: une meilleure façon de procéder consiste à appeler la
recreate()
méthode. Cela entraînera la recréation de l'activité.la source
J'ai vu les réponses précédentes qui ont été données pour recharger l'activité en utilisant Intent. Ceux-ci fonctionneront mais vous pouvez également faire de même en utilisant la méthode recreate () donnée dans la classe Activity elle-même.
Au lieu d'écrire ceci
// Actualiser l'activité principale à la fermeture de la boîte de dialogue
Cela peut être fait en écrivant ceci uniquement
la source
recreate()
était la solution pour moi - "redémarrer" l'activité ne fonctionnait pas pour moi, car j'ai commencé l'activité en utilisant "StartActivityForResult" et cela a cassé le comportement.utilisez simplement
cela déclenchera la méthode onCreate dans l'activité
la source
J'avais besoin de mettre à jour une liste de messages dans l'une de mes applications à la hâte, alors j'ai juste effectué un rafraîchissement de mon activité d'interface principale avant de fermer la boîte de dialogue dans laquelle j'étais. Je suis sûr qu'il existe de meilleures façons d'y parvenir également.
la source
Android comprend un système de gestion des processus qui gère la création et la destruction d'activités, ce qui annule en grande partie tout avantage que vous verriez à redémarrer manuellement une activité. Vous pouvez voir plus d'informations à ce sujet dans Application Fundamentals
Cependant, la bonne pratique consiste à s'assurer que vos méthodes onPause et onStop libèrent toutes les ressources que vous n'avez pas besoin de conserver et d'utiliser onLowMemory pour réduire vos besoins d'activités au minimum absolu.
la source
Commencez avec votre intention
activity
et fermez leactivity
.la source
dans certains cas, c'est la meilleure pratique dans d'autres, ce n'est pas une bonne idée que cela dépend du contexte si vous choisissez de le faire en utilisant ce qui suit est le meilleur moyen de passer d'une activité à ses fils:
la chose est chaque fois que vous avez terminé () de activityIWishToRun vous retournez à votre activité vivante
la source
Recharger toute votre activité peut être une tâche difficile. Mettez simplement la partie du code qui doit être actualisée dans ( kotlin ):
Java:
Et appelez " onResume () " chaque fois que nécessaire.
la source
Je ne pense pas que ce soit une bonne idée ... il serait préférable de mettre en œuvre une méthode plus propre. Par exemple, si votre activité contient un formulaire, la méthode de nettoyage peut simplement effacer chaque widget du formulaire et supprimer toutes les données temporaires. Je suppose que c'est ce que vous voulez: restaurer l'activité à son état initial.
la source
Après avoir expérimenté cela pendant un certain temps, je n'ai trouvé aucune conséquence inattendue du redémarrage d'une activité. En outre, je pense que cela est très similaire à ce que fait Android par défaut lorsque l'orientation change, donc je ne vois pas de raison de ne pas le faire dans des circonstances similaires.
la source
j'ai le même problème
ce code fonctionne pour moi. Android api 17
la source
Dans une activité, vous pouvez appeler
recreate()
pour "recréer" l'activité (API 11+)la source
J'avais une autre approche comme: régler
launchMode
mon activité sursingleTop
et sans appelerfinish()
,startActivity(getIntent())
fera juste le travail. Il suffit de se soucier des nouvelles données à la fois dansonCreate()
etonNewIntent
. À la manière de Sush, l'application peut clignoter comme l'a dit AMAN SINGH. Mais l'approche d'AMA SINGH créera toujours une nouvelle activité qui est en quelque sorte inutile, même s'il a résolu le problème du «clignotement», je pense.Trop tard pour cette question, mais si quelqu'un cherche une solution, la voici.
la source
Après la connexion, j'ai eu le même problème, j'ai donc utilisé
la source
je l'ai utilisé et cela fonctionne bien sans
finish()
la source
pour moi ça marche ça ne crée pas une autre intention et sur la même intention les nouvelles données chargées.
la source