Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


OnCreateView () espera que AsyncTask se ejecute?

Aquí está mi situación:

En mi onCreate() , me gustaría crear un AsyncTask para recuperar datos de un servidor y almacenarlo en un ArrayList .

  • ¿Cómo manejar varios marcadores en Google Maps con la misma ubicación?
  • ¿Cómo entender la arquitectura limpia VIPER?
  • Android: Detecta el teclado virtual abierto
  • Establecer el botón de Android invisible, pero todavía tiene un oído onClick adjunto
  • Butterknife vs AndroidAnnotations
  • La mejor forma de volver a crear marcadores / polilíneas cuando se gira el teléfono (cambio de orientación)
  • Entonces en mi onCreateView() , me gustaría poner los datos en un ListView , establecer un onItemClickListener , etc …

    El problema es que estoy creando una carrera entre el AsyncTask y el subproceso de interfaz de usuario. Si el onCreateView() se llama antes de que el AsyncTask se AsyncTask recuperar, entonces no configuro el adaptador correctamente, no establezco onItemClickListener , etc …

    Quisiera alguna manera de cerciorarse de que espero que el AsyncTask termine de ejecutar antes de comenzar la función onCreateView() . es posible? He leído sobre el uso de get() en la tarea, pero tuve algunos problemas para ejecutarlo. No parecía estar haciendo nada.

    La razón por la que me gustaría recuperar los datos en onCreate() y establecer el adaptador en onCreateView() (en lugar de configurar el adaptador en onPostExecute() de AsyncTask ), es que me gustaría recuperar los datos una vez, y ser capaz Para crear la vista si el usuario gira la pantalla o navega de nuevo a ese Fragment .

  • Cómo implementar Exportar sqlite Para sobresalir / archivo csv en android?
  • Android: apagar la pantalla cuando está cerca de la cara
  • Mostrar decimal de un doble solo cuando sea necesario
  • Android Silent Push
  • Empuje la actividad a la derecha cuando el cajón abierto
  • FacebookButton SDK v4 LoginButton ignora las personalizaciones XML
  • 3 Solutions collect form web for “OnCreateView () espera que AsyncTask se ejecute?”

    Aquí está una manera mejor. Inicialice su ListView e inicie su AsyncTask en onCreate() . Una vez que los datos están disponibles en el servidor, se agrega a la misma matriz que se le dio a su adaptador y llamar a notifyDatasetChanged() de su adaptador, que se encarga de poblar su vista de lista. Aquí también puede utilizar ListFragment en el que puede llamar a setEmptyText() para agregar texto que se muestra si su lista está vacía.

    Debes seguir la respuesta de @ sujith y cambiar tu implementación, pero aquí tienes una respuesta a tu pregunta específica:

    Quisiera alguna manera de cerciorarse de que espero que el AsyncTask termine de ejecutar antes de comenzar la función onCreateView (). es posible?

    Sí, esto es posible, pero evitará que la interfaz de usuario aparezca mientras espera que termine la tarea.

    Cree y ejecute su AsyncTask luego mantenga la referencia a ella:

     MyAsyncTask mTask; ... ...onCreate() mTask = new MyAsyncTask(); mTask.execute(); ... ...onCreateView() myInfo = mTask.get(); super.onCreateView(). 

    En su caso, esto es una mala idea, sin embargo, hay momentos en que puede que tenga que hacer algo como esto.

    EDIT: mTask.get() devolverá lo que sea devuelto por el doInBackground()

    Sea lo que sea que esté haciendo en onCreateView() , muévalo a onViewCreated()

    onViewCreated se invoca después de que la vista esté lista para que no tenga problemas entonces

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.