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

  • Color de relieve de superposición de círculo no dibujado siempre en Google Maps v2
  • Dibujar superposición en Android (en todo el sistema)
  • Custom OverlayItem sin dibujar
  • Android cómo dibujar la pintura en mano libre en MapView con superposición?
  • Problema de superposición de texto en ViewFlipper ..
  • ¿Hay alguna forma de que los elementos de la interfaz de usuario se superpongan ligeramente (uno encima del otro) sin usar diseños absolutos?
  • Teclado sobre EditText en segundo clic
  • Después de eliminar los eventos de tapa de OverlayItem todavía activan
  • ¿Cómo expandir el marcador de superposición en Google Maps?
  • Disposición de Android: coloca una vista entre dos vistas
  • ¿Cómo mostrar una ruta entre dos geocoords en google maps?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.