从另一个活动返回时,MapFragment地图会加载延迟

据我MapFragmentMapFragment存在过渡animation的问题。 布局上的所有视图都会立即显示,包括MapFragment自己的视图(如缩放按钮)。 但是只有在animation完成后,地图本身才会加载延迟。

为了说明问题,我做了以下事情:

  1. 我稍微改变了Google地图android API示例中的一个活动。 它通过Action Item打开一个空白活动。 当我单击后退按钮时,地图将被加载,但仅在转换完成后才会加载。
  2. 我稍稍夸大了过渡效果,以便您可以更好地看到问题。 我将Developer Options中过渡animation速度设置为5x 。 即使在1倍的速度下,这种滞后也令人不安。

观看此video: http : //www.youtube.com/watch?v = 12SEotktlXI

你有什么建议可以防止这种滞后吗? 为什么所有视图都会立即加载,但地图本身却没有?

测试环境:Nexus 5,Android 4.4.2,无根

编辑:使用MapView而不是MapFragment时也会出现此问题。

原因:因为只要您显示设置活动,地图活动就会处于其onpause()状态; 因此,我假设android管理从地图活动中回收了内存。

解决方案:创建一个静态类并在那里静态地声明映射,以避免android回收映射使用的内存。

防爆。

 //your static class public class MapData{ public static GoogleMap map; } //your map activity public class MapActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if(MapData.map != null) MapData.map = ((SupportMapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap(); } }