从另一个活动返回时,MapFragment的地图会加载滞后

据我所见, MapFragment有一个转换animation的问题。 布局上的所有视图都会立即显示,包括MapFragment自己的视图(如缩放button)。 但是只有在animation完成之后,地图才会被加载。

为了说明这个问题,我做了以下工作:

  1. 我改变了谷歌地图android API示例中的其中一项活动。 它通过一个行动项目打开一个空白的活动。 当我点击返回button,地图得到加载,但只有在转换完成后。
  2. 我稍微夸大了过渡效果,以便更好地看到问题。 我将开发者选项中转换animation速度设置为5x 。 即使在1倍的速度下,这个滞后也令人担忧。

请参阅以下video: http : //www.youtube.com/watch?v = 12SEotktlXI

你有什么build议来防止这种滞后? 为什么所有的意见立即被加载,但地图本身不?

testing环境:Nexus 5,Android 4.4.2,无根

编辑:当使用MapView而不是MapFragment时,也会发生此问题。

Solutions Collecting From Web of "从另一个活动返回时,MapFragment的地图会加载滞后"

原因:因为一旦你的设置活动将被显示,地图活动将在其onpause()状态; 因此,我认为androidpipe理从地图活动中回收了内存。

解决scheme:制作一个静态类,并声明静态地图,以避免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(); } }