8
votes

Utiliser ONRESUME () pour rafraîchir l'activité

Je ne peux pas pour la vie de moi comprendre comment avoir une activité être actualisée après avoir appuyé sur le bouton arrière. J'ai actuellement une activité A qui incendie une intention de goto B et tandis que sur Act B Si vous appuyez sur la main, je veux revenir pour agir pour agir, mais qu'il vous rafraîchit. Je peux utiliser cette intention de rafraîchir l'activité actuellement: xxx

mais je ne peux pas comprendre comment utiliser correctement la fonction ONRESUME () pour rafraîchir mon acte A après y retourner. < / p>


1 commentaires

La raison probable que votre système de rafraîchissement actuel est parce que vous exécutez l'activité dans Standard LaunchMode. Cela signifie que chaque appel de startactivité (rafraîchir) génère une nouvelle instance d'activité A. Étant donné que chaque nouvel instance passe sur Oncreate (), la création de ces instances inutiles donne l'apparence de rafraîchir votre activité. Pour ce faire correctement, vous devez vraiment identifier le code dans Oncreate () qui est responsable de la "rafraîchissement" de l'activité et de la déplacer à Onresume (), comme l'a suggéré Ovdiiu ci-dessous.


3 Réponses :


1
votes

Vous devez placer le code qui met à jour l'interface utilisateur de votre activité dans la méthode OnResume () . Peut-être devriez-vous poster plus de code ou expliquer ce que vous essayez exactement de mettre à jour?


1 commentaires

J'ai une activité contenant une liste de lecture avec 5 chaînes extraites de ma base de données. Son cours avec une méthode du backservice, c'est-à-dire s'il y a un changement de base de données, je recevrai une nouvelle notification avec une chaîne. Si je clique sur cette notification, la liste de réception doit contenir cette chaîne également. Will onresume () me permettre de faire ça?



3
votes

Utiliser starttactivityForresult (Intention, DemandeCode); Pour démarrer activité B à partir de activité A

Ensuite dans Activité A PRODUCTION OnActiVIVIVIVITURE (INT DemandeCode ,TCODE, Intention Data)

là, vous pouvez actualiser votre activité A


0 commentaires

13
votes

Si vous avez besoin d'un comportement spécial de Activitya code> lors de la revenir de Activityb code>, vous devez utiliser starTActivityForresult (intention intention, int DemandeCode) code> de startactivité (intention intention) code>: xxx pré>

de cette façon, vous pourrez détecter la terminaison Activityb code> dans Activitya code> en surcharge OnActiVIVIVIVIVITULT (INT DEPESSCODE, INT RUSSULTCODE, Intention Intention) CODE>: P>

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
    super.onActivityResult(requestCode, resultCode, intent);

    if (requestCode == REQUEST_CODE) {
        doRefresh(); // your "refresh" code
    }
}


0 commentaires