2016-06-24 4 views
1

supportMapFragmentが破棄されないため、OOMの問題に直面しています。onDestroyでsupportMapFragmentを破棄できません

XMLが使用:

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

コードスニペット: https://developers.google.com/android/reference/com/google/android/gms/maps/SupportMapFragment

+0

'、onDestroyである事()'と呼ばれることはできません - 保証がないことそれが呼び出されます。 – ishmaelMakitla

+0

アクティビティが破棄されると、その部分がチェックされます。 –

答えて

1

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

//

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

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

} 

を呼び出すondestroy与えられたドキュメントで述べたのと同じ続きます

私の知る限り見るように、あなたはあなたのmMapFragmentにここにオプションを設定していない:あなたはそれを割り当てていなかったので

mMapFragment.newInstance(mapOptions); 

あなたは、このオプションを使用して1以上SupportMapFragmentを作成しているし、それが失われています。 Documentation says、GoogleMapsOptions

その

はGoogleマップ用の構成GoogleMapOptionsを定義します。これらのオプション は、アプリケーションにプログラムでマップを追加するときに使用できます( :XML経由)。あなたはOnDestroy呼び出したい場合は

は - あなたは次のように、XMLせずに、プログラムでマップを作成する必要があります。

GoogleMapOptions mapOptions = new GoogleMapOptions(); 
mapOptions.useViewLifecycleInFragment(true); 
mMapFragment = SupportMapFragment.newInstance(mapOptions); 
関連する問題