gpt4 book ai didi

android - 从另一个 Activity 返回时,MapFragment 的 map 加载延迟

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:15:40 24 4
gpt4 key购买 nike

据我所知,MapFragment 在过渡动画方面存在问题。布局上的所有 View 都会立即显示,包括 MapFragment 自己的 View (如缩放按钮)。但是 map 本身只有在动画完成后才会加载延迟。

为了说明问题,我做了以下操作:

  1. 我稍微更改了 Google maps android API 示例 中的一项 Activity 。它通过操作项打开一个空白 Activity 。当我点击后退按钮时, map 被加载,但只有在转换完成之后。
  2. 我稍微夸大了过渡效果,以便您能更清楚地看到问题。我在开发者选项中将过渡动画速度设置为5x。即使在 1 倍速下,这种延迟也令人不安。

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

您对防止这种滞后有什么建议吗?为什么所有 View 都立即加载,但 map 本身却没有?

测试环境:Nexus 5,Android 4.4.2,未root

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

最佳答案

原因:因为一旦显示您设置的 Activity , map Activity 将处于其 onpause() 状态;因此,我假设 android 管理从 map Activity 中回收了内存。

解决方法:创建一个静态类并在其中声明静态映射,以避免 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();
}
}

关于android - 从另一个 Activity 返回时,MapFragment 的 map 加载延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21815818/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com