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: mais je ne peux pas comprendre comment utiliser correctement la fonction ONRESUME () pour rafraîchir mon acte A après y retourner. < / p> p>
3 Réponses :
Vous devez placer le code qui met à jour l'interface utilisateur de votre activité dans la méthode OnResume () Code>. Peut-être devriez-vous poster plus de code ou expliquer ce que vous essayez exactement de mettre à jour? P>
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?
Utiliser Ensuite dans là, vous pouvez actualiser votre activité starttactivityForresult (Intention, DemandeCode); Code>
Pour démarrer
activité B code> à partir de
activité A code> p>
Activité A CODE> PRODUCTION
OnActiVIVIVIVITURE (INT DemandeCode ,TCODE, Intention Data) Code> P>
A code> p>
Si vous avez besoin d'un comportement spécial de de cette façon, vous pourrez détecter la terminaison Activitya code> lors de la revenir de
Activityb code>, vous devez utiliser
starTActivityForresult (intention intention, int DemandeCode) code> de
startactivité (intention intention) code>:
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
}
}
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.