我在Android应用程序中使用Google地图v2。一切工作正常,但如果我离开应用程序(使用主页按钮),使用该设备的其他东西,然后返回到我的应用程序,地图只是重置自己,并放弃我所有的设置和听众。Google地图v2有时会在重新启动应用时重置
我认为这是因为我的手机没有那么多RAM,所以当它需要运行其他应用程序时,对我的应用程序来说至关重要的东西就会丢失......如果我在此期间不使用其他应用程序,它会继续保持所有设置和监听器完好无损。
所以我有可变private GoogleMap map = null;
我需要创建编程,因为我把它变成一个LinearLayout
(fragment_wrapper
)地图一员,我也想用其他片段。所以我在我的onCreate()
方法,这样做:
mapFragment = MapFragment.newInstance();
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
fragmentTransaction.add(R.id.fragment_wrapper, mapFragment);
fragmentTransaction.commit();
的地图不会被初始化速度非常快,所以我需要设置在onResume()
方法及其设置和听众:
if (map == null) {
map = mapFragment.getMap();
UiSettings settings = map.getUiSettings();
settings.setMyLocationButtonEnabled(false);
settings.setZoomControlsEnabled(false);
(...)
map.setOnMapClickListener((...));
(...)
}
我原本如果在那里阻塞,以便应用程序不必在恢复时再次设置地图的设置和侦听器。但后来我发现它忘记了设置。所以我认为如果我删除了如果块,它会再次设置地图,因为onResume()
在应用程序恢复时被调用。但它也不起作用...因此,所有地图的设置和侦听器都消失了,这使得地图无用,而且我的应用需要重新启动才能重新设置地图。
任何人都可以请告诉我问题可能是什么以及如何解决它?谢谢。