Android: possible de placer une requête HTTP en dehors de onCreate in Activity?

StackOverflow https://stackoverflow.com/questions/8414993

  •  29-10-2019
  •  | 
  •  

Question

Je suis nouveau sur Android et j'essaie de savoir où placer une requête HTTP afin de la faire exécuter une seule fois (lorsque l'activité devient visible pour la première fois).onCreate est toujours appelé lors du retour de onActivityResult (en récupérant une photo de la caméra ici)

Des suggestions?

Était-ce utile?

La solution

À l'intérieur du onCreate(Bundle savedInstanceState), si savedInstanceState est null, alors c'est le premier / propre démarrage de l'activité.Vous pouvez donc faire quelque chose comme ceci:

onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (savedInstanceState == null) {
        // call HTTP request
    }

    ... the rest of onCreate()
}

Autres conseils

Que diriez-vous de définir un indicateur la première fois que vous effectuez un appel dans onCreate, puis de le vérifier chaque fois que onCreate (et votre code) est appelé.Pour terminer le cycle de vie des activités est documenté ici: http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle

OnCreate () n'est peut-être pas un mauvais endroit si vous êtes d'accord pour qu'il soit toujours exécuté au démarrage de l'activité ou si vous êtes prêt à vérifier si cela a déjà été fait (comme d'autres réponses le suggèrent également).Vous pouvez définir un indicateur dans SharedPreferences à cette fin, car cet indicateur survit également à l'arrêt complet de l'application et au redémarrage.

Cela dit: vous devez toujours placer la requête http dans un thread d'arrière-plan si vous souhaitez rendre votre application disponible sur Honeycomb ou même Ice Cream Sandwich, car ces systèmes tuent l'application s'il y a un accès réseau dans leFil de discussion de l'interface utilisateur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top