每个Android应用程序/进程如何使用多个MapActivities / MapViews

我写了一个MapActivity类,可以显示一组地点以及单个地方.在启动时,应用程序将创建此MapActivity的实例,并显示多个位置.如果用户点击某个地方,则会启动一个新的活动,显示所选地点的详细信息.此活动具有允许用户在地图上查看该地点的菜单项 – 这将导致创建MapActivity的新实例,但现在只显示此单个位置.

现在的问题是,如果用户导航返回到第一个MapActivity(显示多个地方的地图),那么将遇到OutOfMemoryErrors不再加载图块.

根据Android JavaDocs,每个进程只能有一个MapActivity.但是,我不想将MapActivity定义为singleInstance / singleTask,因为用户应该始终能够导航回到显示多个地方的第一个MapActivity.

我看到Android的Google地方资讯应用程式(搭配Google Map 4.4)使用了多个MapActivity实例.这怎么可能?我的应用程序如何实现?

解决方法

According to the Android JavaDocs,it
is only possible to have one
MapActivity per class

它不是每个类的一个地图视图,它是每个进程.

众所周知,在一个进程中使用多个地图时可能会遇到一些问题.通常情况(您的应用程序在一个进程中运行),如果您没有配置任何特定的.
你可以使用你的清单中的android:process属性来分配你的acitivites:

<activity android:name=".activity.directory.MapView1" android:process=":MapView1">

<activity android:name=".activity.directory.MapView2" android:process=":MapView2">

这样您就可以在单独的进程中运行这些活动,如果不在活动中使用任何共享的静态变量,这些功能会很好.

另请参阅关于android bug跟踪器中的bug的讨论:

http://code.google.com/p/android/issues/detail?id=3756

相关文章

这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...