我正面临OOM问题,因为supportMapFragment没有被销毁。
使用Xml:
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调用
ProgressDialog
跟随给出的文档中提到的相同: https://developers.google.com/android/reference/com/google/android/gms/maps/SupportMapFragment
答案 0 :(得分:1)
据我所知,你没有在这里为mMapFragment设置选项:
mMapFragment.newInstance(mapOptions);
您正在使用此选项再创建一个SupportMapFragment,但它已丢失,因为您没有分配它。 Documentation says,即GoogleMapsOptions
为GoogleMap定义配置GoogleMapOptions。这些选项 可以在以编程方式将地图添加到应用程序时使用(如 反对通过XML)。
如果要调用OnDestroy,则应以编程方式创建映射,不使用XML,如:
GoogleMapOptions mapOptions = new GoogleMapOptions();
mapOptions.useViewLifecycleInFragment(true);
mMapFragment = SupportMapFragment.newInstance(mapOptions);