2010-11-24 4 views
1

Ich habe ein Problem mit meiner App, es hat eine Menge Aktivitäten, zwei von ihnen hat googlemap Ansichten. Meine A-Aktivität hat eine vollständige Kartenansicht und meine B-Aktivität hat eine kleine Kartenansicht. OK, wenn ich in der B-Aktivität bin und einige Male die Zurück-Taste drücke, bis ich zu meiner A-Aktivität zurückkehre, wird die Karte meiner A-Aktivität mit Fehlern angezeigt, mit einer schwarzen Zone im unteren Teil des Fensters. Dies geschieht nur, wenn ich von der B-Aktivität zurück drücke.Probleme, wenn meine googlemaps anzeigen Aktivität wieder den Fokus (Karte mit schwarzer Zone im unteren Teil des Fensters)

Da dies, ich onResume() -Methode von A implementieren/überschreiben müssen, um die Aktivität neu zu starten, um alles aus SRATCH REPORTIEREN .... WIE, ONCREATE METHODE ZU TUN, aber ich denke, ich kann es nicht noch einmal aufrufen. .. oder ich kann?

welchen Code muss ich setzen, um alle Fenster von Grund auf neu zu streichen?

i tryed mit all dies:

-mapView.requestLayout() -> es ein wenig funktioniert, neu zeichnet die Karte aber mit dem Zoom und die letzte Karte zeigt zeigte auf B-Aktivität ... keinen Sinn: S Ich möchte nicht Das. Sind verschiedene Karten, müssen nicht die gleichen Koordinaten und Zoom anzeigen, jeder hat seinen eigenen.

-mapView.invalidate() -> funktioniert funktioniert nicht

-mapView.postInvaldiate() -> nicht funktioniert funktioniert

+0

Haben Sie etwas in B, das A verwendet? Wenn Sie die Zurück-Taste drücken, wird 'Activity.onDestroy()' aufgerufen. – techiServices

+0

nein ich benutze nichts von B auf A .... – NullPointerException

+0

Wenn Sie über Fehler und eine schwarze Zone sprechen, beziehen Sie sich darauf, dass Kartenkacheln (quadratische Abschnitte der Karte) nicht richtig geladen werden? – ddewaele

Antwort

4

mehrere Karten (MapViews) läuft im gleichen Prozess zu haben ist nicht adviced. In der Regel werden mit der Standardkonfiguration alle Aktivitäten (einschließlich MapActivities) im selben Prozess ausgeführt.

Nach den API-Dokumentation befindet sich hier http://code.google.com/android/add-ons/google-apis/reference/com/google/android/maps/MapActivity.html

Nur ein MapActivity wird pro Prozess unterstützt. Mehrere MapActivities, die gleichzeitig ausgeführt werden, können unerwartete und unerwünschte Auswirkungen haben.

Probleme stieß ich mit mehreren MapViews innerhalb des gleichen Prozesses:

  • Obwohl es scheint, dass es 2 verschiedene Karten in der App, Änderungen in die erste Karte (ex: es zu einem bewegt bestimmte Position, toggeln sattelite Ansicht) wurde auch in der zweite Karte reflektiert, als ob es die gleiche Karte war.
  • Gelegentlich wurden Kartenkacheln nicht richtig geladen. Teile von die Karte oder die komplette Karte blieb leer.
  • In Logcat wurden Apache HTTP-Verbindung Pool Fehler (aus dem TilesProvider) angemeldet

ein Defekt hier angemeldet ist: http://code.google.com/p/android/issues/detail?id=3756 ist Ihre Karten in verschiedenen Prozessen

Eine Lösung/Abhilfe zu hosten:

<activity android:name=".MapView1" android:process=":MapView1"> 
<activity android:name=".MapView2" android:process=":MapView2"> 
+0

ES FUNKTIONIERT !!! aber es verlangsamt meine App – NullPointerException