Quand est-ce que le fragment OnActivityResult de fragment est appelé en ce qui concerne le cycle de vie des fragments?

Lorsque je commence l'intention de la Camera , j'ai remarqué que onActivityResult est appelé avant onResume dans le cycle de vie des fragment .

J'ai également remarqué que onActivityResult est appelé après onStart .

  • Compte à rebours dans le champ de temps d'une notification
  • Okhttp intercepteur loggin dans multipart
  • Différence entre déclarer-style et style
  • Comment obtenir le numéro IMEI dans PhoneGap?
  • Obtenez l'identifiant de ressource pour la référence étirable utilisée dans l'attribut de style
  • Android JobScheduler onStartJob appelé plusieurs fois
  • Mais voici la partie étrange: j'ai un fichier variableUri == "un chemin d'image". Cette variable est

    • PAS NULL dans OnStart.
    • NULL dans onActivityResult
    • NO NULL à nouveau sur onResume

    Voir logCat

     12-03 14:39:42.418: D/Fragment1(29220): onStart fileUri: file:///mnt/sdcard/OPS_IMAGES/IMG_20121203_143933.jpg 12-03 14:39:42.463: W/PhoneWindow(29220): Previously focused view reported id 2131034140 during save, but can't be found during restore. 12-03 14:39:42.463: D/Fragment1(29220): onActivityResult fileUri is NULL!!! 12-03 14:39:42.468: D/Fragment1(29220): onResume fileUri: file:///mnt/sdcard/OPS_IMAGES/IMG_20121203_143933.jpg 

    La pire partie, c'est seulement 50% du temps. Un autre 50% onActivityResult peut accéder à la valeur fileUri sans problème …

    Comment est-ce que je dois supposer cela?

    REMARQUE: pour des raisons de simplicité, je n'ai pas inclus le code de mes méthodes onResume, onStart, onActivityResult. Ce ne sont que des méthodes de base avec vérification variable et appel en ligne. Si nécessaire, je vais modifier la question et ajouter ces méthodes.

    NOTE2: j'utilise la bibliothèque de support Google pour prendre en charge les fragments sur les anciennes versions de l'API.

    2 Solutions collect form web for “Quand est-ce que le fragment OnActivityResult de fragment est appelé en ce qui concerne le cycle de vie des fragments?”

    Pour répondre à votre question initiale, voici l'ordre des rappels Lifecycle

     12-09 16:38:41.800 10227-10227/org.Test I/Fragment: ## OnStart() 12-09 16:38:41.820 10227-10227/org.Test I/Fragment: ## OnActivityResult() 12-09 16:38:41.821 10227-10227/org.Test I/Fragment: ## OnResume() 

    Ce n'est pas un domaine sur lequel j'ai été branché ou un problème que j'ai eu, mais si votre variable n'est pas visible pour une raison quelconque … Avez-vous essayé d'utiliser un autre type de façon de faire référence à la valeur?

    Ma suggestion serait d'essayer d'utiliser une variable SharedPreferences et d'enregistrer la valeur là-bas dans l'éditeur et de la retirer. Ce n'est peut-être pas la meilleure solution, mais peut être utile pour le moment.

    J'ai eu le message d'erreur similaire de logcat de, c'est ainsi que je suis tombé sur votre publication.

     "01-27 11:13:42.899: W/PhoneWindow(1591): Previously focused view reported id 16908862 during save, but can't be found during restore." 

    La façon dont j'ai réussi à résoudre mon problème était que mon «Constructeur en blanc» ne réintroduisait pas mon fragment. Dans le fragment, j'ai seulement une variable qui est une «ID» qui est transmise à mon activité lorsque l'utilisateur sélectionne un élément avec sa sélection. J'ai simplement réimporté mon fragment en appelant mon constructeur normal avec les valeurs transmises.

    par exemple.

     public UIDialogFragmentVolume() { this(ID); } public UIDialogFragmentVolume(int typeID) { ID = typeID; } 

    J'espère que cela vous aidera à déterminer et résoudre votre problème.

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