gpt4 book ai didi

android - 销毁 map View

转载 作者:行者123 更新时间:2023-11-29 16:24:39 25 4
gpt4 key购买 nike

我有一个 MapActivity,您可以在其中在 MapView(谷歌地图)和 OfflineMapView(我的类(class),显示以前下载到 SD 卡的 map )之间切换。在 map 之间切换时,我想完全销毁并创建 map View ,以便内存中只有一个 map View 。我想要这个有两个原因:

  1. 我的 OfflineMapView 占用了大部分可用内存来缓存图 block 。
  2. Google MapView 有一些附加线程,我不想在 OfflineMapView 可见时运行它们。

我试图从布局中删除 MapView 并取消我对它的引用,但是当我想再次显示它时,我得到一个异常,指出 MapActivity 只能有一个 MapView。

编辑:Google MapView 的存在(可见性设置为 GONE)对 OfflineMapView FPS 没有任何影响。我也没有收到任何 OutOfMemoryErrors。

最佳答案

使用 ActivityGroup 作为您的 Activity 类,并让它为每种类型的 map 启动和停止子 Activity 。例如,获取 Google map 的 View :

Intent intent = new Intent(this, GoogleMapActivity.class);
Window window = getLocalActivityManager().startActivity("google-map", intent);
View googleMapView = window.getDecorView();
container.addView(googleMapView);

摧毁它:

container.removeView(googleMapView);
getLocalActivityManager().removeAllActivities();

并对您的离线 map 执行相同的操作。这应该完全停止 MapActivity 及其线程。

请注意,我发现 LocalActivityManager.destroyActivity() 有问题,所以我在示例中使用了 LocalActivityManager().removeAllActivities() 因为它确实适用于此案例。

关于android - 销毁 map View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5133298/

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