【发布时间】:2011-02-28 11:59:49
【问题描述】:
我有一个 MapActivity,您可以在其中切换 MapView(谷歌地图)和 OfflineMapView(我的班级,显示以前下载到 SD 卡的地图)。在地图之间切换时,我想完全销毁并创建地图视图,以便内存中只有一个地图视图。我想要这个有两个原因:
- 我的 OfflineMapView 占用了大部分可用内存来缓存切片。
- Google MapView 有一些附加线程,我不想在 OfflineMapView 可见时运行这些线程。
我试图从布局中删除 MapView 并将我对它的引用设为空,但是当我想再次显示它时,我收到一个异常,说 MapActivity 只能有一个 MapView。
编辑: Google MapView 的存在(可见性设置为 GONE)对 OfflineMapView FPS 没有任何影响。我也没有收到任何 OutOfMemoryErrors。
【问题讨论】:
-
你是
finish()MapActivity吗? -
没有。我的 Activity 顶部有一个地图选择器 - ssl.gstatic.com/android/market/cz.fhejl.pubtran.london/… 用户可以在不同的离线地图之间进行选择,我想将 Google MapView 作为选项之一。当谷歌地图被选中时,我想销毁离线地图(OfflineMapView)并创建谷歌地图视图。 “销毁”是指停止线程,清除位图缓存并从布局中删除。当用户切换回离线地图时,Google MapView 应该同样被销毁。
-
我用附加信息编辑了我的问题。