Aplicación de Android: mostrar elementos de superposición en AsyncTask

Estoy construyendo una aplicación Android que usa google maps para superponer elementos. La latitud y longitud de los elementos que obtengo de una base de datos MySQL. Para ello, me conecto a un script php utilizando HTTP en Async Task. Mi código para mostrar elementos en el mapa está en el método onPostExecute () de Async Task.

Todo funciona bien, pero cuando por ejemplo giro el teléfono todos mis elementos superpuestos desaparecen. ¿Cómo puedo resolver este problema?

¿Deberían superponerse los elementos en el hilo principal? Si es así, necesito pasar de alguna manera la información de taks async al hilo principal, que he mirado pero no he podido conseguir ese funcionamiento. Si alguien conoce una buena y correcta manera de hacer esto, realmente agradecería la ayuda.

6 Solutions collect form web for “Aplicación de Android: mostrar elementos de superposición en AsyncTask”

OnPostExecute se invoca en el hilo principal! Su problema es que cuando gira su teléfono

Android reinicia la actividad en ejecución (onDestroy () se llama, seguido de onCreate ()). El comportamiento de reinicio está diseñado para ayudar a su aplicación a adaptarse a las nuevas configuraciones mediante la recarga automática de la aplicación con recursos alternativos que coincidan con la nueva configuración del dispositivo.

. http://developer.android.com/guide/topics/resources/runtime-changes.html

La tarea asíncrona es el hilo donde el método onpost es el adjunto predeterminado con el hilo principal de la interfaz de usuario su problema no Async sólo tiene que manejar el método onConfigurationChanged, mejor para publicar algún código.

Utilice el onSaveInstanceState(Bundle outstate) y onRestoreInstanceState(Bundle savedInstanceState) de la clase de actividad.

Como se menciona android reinicia su actividad cuando cambia la rotación. Así que la solución a esto es en onSaveInstenceState usted debe almacenar los datos de elementos de superposición y en onRestoreInstanceState usted debe recrear los elementos de superposición sobre la base de datos guardados

Crear un método llamado initUi() y llamarlo en onConfigurationChanged y onCreate métodos como este:

 @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); try { setContentView(...); initUi(); } catch (Exception e) { } } 

y

 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.act_document); initUi(); try { } catch (Exception e) { } 

Como se dijo en las otras respuestas, puede resolver su problema con onSaveInstanceState (Bundle outstate) y onRestoreInstanceState (Bundle savedInstanceState) o incluso deshabilitar los cambios de orientación en el dispositivo.

Vamos a ver uno por uno:

-Deshabilitar los cambios de orientación, puede resultar en una experiencia de usuario, por lo que no lo favorecería.

-Usando onSaveInstanceState (Bundle outstate) y onRestoreInstanceState (Bundle savedInstanceState) tiene dos oprions principales …

Opción 1:

Puede guardar sólo información básica sobre los elementos que se muestran (es decir, si es un mapa, puede guardar la ubicación del mapa y el zoom) y luego recuperar de nuevo de la base de datos toda la información de superposiciones. Eso es muy simple, pero puede ser muy lento si tiene varios cientos de elementos de superposición para recuperar, resultando de nuevo en una experiencia de usuario.

Opcion 2:

Puede utilizar parcelable para extender el elemento de superposición para poder guardar todos los elementos de superposición durante onSaveInstanceState (Bundle outstate) y restaurarlos sin recargar desde la base de datos. He usado esto con varios miles de artículos, y funciona bastante bien.

Puede encontrar información parcelable aquí: Google y, por ejemplo, aquí: Android – Datos de paquetes para pasar entre Actividades que utilizan clases Parcelable

Buena suerte

  • Mostrar un bus móvil en google maps api v2 android
  • ¿Cómo puedo poner una vista encima de un glSurfaceView con un fondo transparente?
  • Android: trazado de dibujo como superposición en MapView
  • Colocar una vista de imagen como imagen de superposición en la vista previa de la cámara
  • Cómo dibujar polígono mano libre en Google mapa V2 en Android?
  • Después de eliminar los eventos de tapa de OverlayItem todavía activan
  • Cómo crear una superposición de información en Android
  • Especifique Layout Margen superior para la barra de acción de superposición
  • Widget flotante / superposición en el lanzador de Android
  • Dibujar una superposición similar a MapsApp
  • No lleve el botón al primer plano al hacer clic
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.