Rechargez l'activité dans Android

Est-ce une bonne pratique de recharger une Activity dans Android ?

Quelle serait la meilleure façon de le faire? this.finish , puis this.startActivity with the activity Intent ?

  • Comment ajouter un type mime personnalisé?
  • "Activité par défaut introuvable" pour une application portable créée avec un modèle Android Studio
  • Voie d'affichage de Google Maps API v2 Google
  • Eclipse et Android SDK problème "aapt.exe s'est arrêté"
  • Carnet de sécurité de l'actif Android
  • Android 5 Bad notification postée dans le paquet
  • Android deux AsyncTasks en série ou en parallèle? - Le second est gelé, mais le résultat est correct
  • Firebase est bloqué sur une connexion INTERNET
  • Détecter quand une autre application a été ouverte ou lancée
  • Comment convertir un SparseArray en ArrayList?
  • Réduction de la taille APK en recréant son contenu
  • Le redémarrage du téléphone Android lors de l'exécution d'une application à partir d'eclipse
  • 11 Solutions collect form web for “Rechargez l'activité dans Android”

    Vous pouvez simplement utiliser

     finish(); startActivity(getIntent()); 

    Pour rafraîchir une Activity partir d'elle-même.

    C'est ce que je fais pour relader l'activité après avoir changé de retour d'un changement de préférence.

     @Override protected void onResume() { super.onResume(); this.onCreate(null); } 

    Cela provoque essentiellement que l'activité se redessine.

    Mise à jour: une meilleure façon de le faire est d'appeler la méthode recréer (). Cela entraînera l'activité à recréer.

    J'avais besoin de mettre à jour une liste de messages dans une de mes applications à la hâte, alors je viens d'effectuer un rafraîchissement de mon activité principale d'interface utilisateur avant de fermer le dialogue dans lequel j'étais. Je suis sûr qu'il y a de meilleures façons d'y parvenir.

     // Refresh main activity upon close of dialog box Intent refresh = new Intent(this, clsMainUIActivity.class); startActivity(refresh); this.finish(); // 

    Android comprend un système de gestion de processus qui gère la création et la destruction d'activités qui annulent en grande partie les bénéfices que vous verrez lors du redémarrage manuel d'une activité. Vous pouvez en voir plus d'informations sur Application Fundamentals

    Cependant, il est recommandé de veiller à ce que vos méthodes onPause et onStop publient toutes les ressources dont vous n'avez pas besoin de conserver et utiliser onLowMemory pour réduire vos activités au minimum absolu.

    Pour ceux qui ne veulent pas voir ce clignotement après la méthode de recréer () , utilisez simplement

      finish(); overridePendingTransition(0, 0); startActivity(getIntent()); overridePendingTransition(0, 0); 

    Commencez avec l'intention de votre même activity et fermez l' activity .

     Intent refresh = new Intent(this, Main.class); startActivity(refresh);//Start the same Activity finish(); //finish Activity. 

    Dans certains cas, c'est la meilleure pratique dans d'autres, ce n'est pas une bonne idée, c'est un contexte axé si vous choisissez de le faire en utilisant la meilleure façon de passer d'une activité à ses fils:

      Intent i = new Intent(myCurrentActivityName.this,activityIWishToRun.class); startActivityForResult(i, GlobalDataStore.STATIC_INTEGER_VALUE); 

    La chose est chaque fois que vous avez fini () de activityIWishToRun vous revenez à votre activité vivante

    J'ai le même problème

     import android.support.v4.content.IntentCompat; intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |IntentCompat.FLAG_ACTIVITY_CLEAR_TASK); 

    Ce code fonctionne pour moi. Android api 17

    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 pourrait simplement effacer chaque widget dans le formulaire et supprimer toutes les données temporaires. Je suppose que c'est ce que vous voulez: restaurer l'activité à son état initial.

    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 crois que c'est très similaire à ce que fait Android par défaut lorsque l'orientation change, donc je ne vois pas une raison de ne pas le faire dans une situation similaire.

    J'ai eu une autre approche comme: configurer le launchMode de launchMode de mon activité sur singleTop et sans appeler finish() , tout simplement startActivity(getIntent()) fera le travail. Il suffit de se soucier des nouvelles données dans onCreate() et onNewIntent . Avec Sush, l'application peut clignoter comme l'a dit AMAN SINGH. Mais l'approche d'AMAN SINGH va encore créer une nouvelle activité qui est en quelque sorte inutile, même s'il a résolu le problème de «clignotement», je pense.

    Trop tard pour cette question, mais si quelqu'un cherche une solution, voilà.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.