2016-06-24 4 views
1

Ich bin mit einem OOM-Problem konfrontiert, da supportMapFragment nicht zerstört wird.supportMapFragment on onDestroy kann nicht gelöscht werden

Xml verwendet:

<fragment 
    android:id="@+id/map" 
    android:name="com.google.android.gms.maps.SupportMapFragment" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

-Code-Schnipsel:

mMapFragment = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)); 
GoogleMapOptions mapOptions = new GoogleMapOptions(); 
mapOptions.useViewLifecycleInFragment(true); 
mMapFragment.newInstance(mapOptions); 

// OnDestroy Aufruf

@Override 
protected void onDestroy() { 
    super.onDestroy(); 

    //clear all the data 
    mMap.clear(); 
    mMapFragment.onDestroyView(); 

} 

Gefolgt die gleiche wie angegeben in der Dokumentation erwähnt: https://developers.google.com/android/reference/com/google/android/gms/maps/SupportMapFragment

+0

Die Sache ist, 'onDestroy()' kann nicht aufgerufen werden - es gibt keine Garantie dafür, dass es wird aufgerufen. – ishmaelMakitla

+0

Bei der Zerstörung der Aktivität wird der Teil aufgerufen .. –

Antwort

1

Soweit ich sehe, du bist nicht Optionen hier, um Ihre mMapFragment Einstellung:

mMapFragment.newInstance(mapOptions); 

Sie sind eine weitere SupportMapFragment mit dieser Option zu schaffen, und es ist verloren, weil Sie es nicht zugewiesen haben. Documentation says, dass GoogleMapsOptions

Definiert Konfiguration GoogleMapOptions für eine GoogleMap. Diese Optionen können verwendet werden, wenn Sie Ihrer Anwendung programmgesteuert eine Zuordnung hinzufügen (z. B. im Gegensatz zu via XML).

Wenn Sie anrufen OnDestroy wollen - Sie die Karte programmatisch, ohne XML erstellen müssen, wie:

GoogleMapOptions mapOptions = new GoogleMapOptions(); 
mapOptions.useViewLifecycleInFragment(true); 
mMapFragment = SupportMapFragment.newInstance(mapOptions); 
Verwandte Themen