Multiple MapActivitys en la pila

Entiendo que este tema ha sido cubierto unas cuantas veces, ya menudo la solución propuesta para tener "múltiples" clases MapActivity es ejecutar uno en procesos diferentes. No quiero hacer esto, tengo 3.

En cambio, he refactorizado una subclase MapActivity para que funcione en 3 modos diferentes.

package com.rossgreenhalf.maptest.activity; import android.os.Bundle; import com.google.android.maps.MapActivity; public class MyMapActivity extends MapActivity { @Override protected void onCreate(Bundle icicle) { super.onCreate(icicle); /* Inflate xml view, Set Zoom etc */ } @Override protected void onResume() { super.onResume(); int mode = getIntent().getExtras().getInt("MAP_MODE"); switch(mode){ case 1: /* Some markers to show */ break; case 2: /* Just one Marker */ break; case 3: /* Only showing my location */ break; } } @Override protected boolean isRouteDisplayed() { return false; } } 

Estoy permitiendo que varias instancias de MapActivity residan dentro de la pila de tareas, ya que su modo de inicio todavía se establece como 'Estándar'. Este enfoque parece funcionar bien, y no estoy recibiendo el mensaje Connection Pool Shutdown que algunos parecen obtener, estoy un poco confundido en cuanto a si existen varias instancias de MapActivity o si android está reutilizando una automáticamente?

Sin embargo, estoy recibiendo este error, que no sé lo grave que es:

 01-25 10:14:54.433: ERROR/ActivityThread(5620): Activity com.rossgreenhalf.maptest.activity.MyMapActivity has leaked IntentReceiver com.google.android.maps.NetworkConnectivityListener$ConnectivityBroadcastReceiver@44981cf0 that was originally registered here. Are you missing a call to unregisterReceiver()? 01-25 10:14:54.433: ERROR/ActivityThread(5620): android.app.IntentReceiverLeaked: Activity com.rossgreenhalf.maptest.activity.MyMapActivity has leaked IntentReceiver com.google.android.maps.NetworkConnectivityListener$ConnectivityBroadcastReceiver@44981cf0 that was originally registered here. Are you missing a call to unregisterReceiver()? 01-25 10:14:54.433: ERROR/ActivityThread(5620): at android.app.ActivityThread$PackageInfo$ReceiverDispatcher.(ActivityThread.java:968) 01-25 10:14:54.433: ERROR/ActivityThread(5620): at android.app.ActivityThread$PackageInfo.getReceiverDispatcher(ActivityThread.java:753) 01-25 10:14:54.433: ERROR/ActivityThread(5620): at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:799) 01-25 10:14:54.433: ERROR/ActivityThread(5620): at android.app.ContextImpl.registerReceiver(ContextImpl.java:786) 01-25 10:14:54.433: ERROR/ActivityThread(5620): at android.app.ContextImpl.registerReceiver(ContextImpl.java:780) 01-25 10:14:54.433: ERROR/ActivityThread(5620): at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:318) 01-25 10:14:54.433: ERROR/ActivityThread(5620): at com.google.android.maps.NetworkConnectivityListener.startListening(MapActivity.java:163) 01-25 10:14:54.433: ERROR/ActivityThread(5620): at com.google.android.maps.MapActivity.onResume(MapActivity.java:431) 01-25 10:14:54.433: ERROR/ActivityThread(5620): at com.rossgreenhalf.maptest.activity.MyMapActivity.onResume(MyMapActivity.java:166) 01-25 10:14:54.433: ERROR/ActivityThread(5620): at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1237) 01-25 10:14:54.433: ERROR/ActivityThread(5620): at android.app.Activity.performResume(Activity.java:3864) 01-25 10:14:54.433: ERROR/ActivityThread(5620): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3315) 01-25 10:14:54.433: ERROR/ActivityThread(5620): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3340) 01-25 10:14:54.433: ERROR/ActivityThread(5620): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2158) 01-25 10:14:54.433: ERROR/ActivityThread(5620): at android.os.Handler.dispatchMessage(Handler.java:99) 01-25 10:14:54.433: ERROR/ActivityThread(5620): at android.os.Looper.loop(Looper.java:143) 01-25 10:14:54.433: ERROR/ActivityThread(5620): at android.app.ActivityThread.main(ActivityThread.java:4914) 01-25 10:14:54.433: ERROR/ActivityThread(5620): at java.lang.reflect.Method.invokeNative(Native Method) 01-25 10:14:54.433: ERROR/ActivityThread(5620): at java.lang.reflect.Method.invoke(Method.java:521) 01-25 10:14:54.433: ERROR/ActivityThread(5620): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858) 01-25 10:14:54.433: ERROR/ActivityThread(5620): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 01-25 10:14:54.433: ERROR/ActivityThread(5620): at dalvik.system.NativeStart.main(Native Method) 

¿Estoy tomando el enfoque correcto para esto? ¿Debo preocuparme con ese error?

Tengo el mismo problema y después de buscar encontré este post sobre el mismo problema

https://novoda.lighthouseapp.com/projects/63622/tickets/157-leak-receiver-searchresult

sugiere que el problema aumenta cuando se utilizan múltiples map activities dentro de la aplicación.

por lo que en el archivo manifest.xml de mi aplicación he hecho que cada actividad de mapa se ejecute en un proceso separado:

 android:process=":p1" android:process=":p2" 

puedes leer más sobre esto en documentos Android. http://developer.android.com/guide/topics/manifest/activity-element.html#proc

  • Google Maps v2 en el Android Studio. No se encontró GeoPoint
  • Android Google Maps no se muestra en firmado apk V2
  • Cómo cambiar el idioma Google Map V2 android
  • Advertencia en Google Map
  • Android - No se pudo encontrar el estilo 'mapViewStyle' en el tema actual
  • Cómo eliminar marcador específico en Android GoogleMap
  • Dar valor doble a Geopoint en superposiciones de GoogleMap
  • API de Google Maps para Android da un NoClassDefFoundError
  • Límite de uso del mapa Google V3 en las aplicaciones Phonegap
  • Dibujar ruta en el mapa de google basado en lat lang
  • Google maps api para la página de registro de android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.