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

sta*_*cky 10 android google-maps android-mapview

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

现在的问题是,如果用户导航回第一个MapActivity(显示多个位置的那个),将不再加载切片+有时会遇到OutOfMemoryErrors.

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

我已经看到适用于Android的Google商家信息应用(随Google Map 4.4一起提供)使用了多个MapActivity实例.这怎么可能?我怎样才能在我的应用程序中实现它?

Mat*_*adt 20

根据Android JavaDocs,每个类只能有一个MapActivity

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

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

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

<activity android:name=".activity.directory.MapView2" android:process=":MapView2">
Run Code Online (Sandbox Code Playgroud)

这样,您可以在单独的进程中运行活动,如果不跨活动使用任何共享静态变量,则可以正常运行.

另请参阅有关android bug跟踪器中的错误的讨论:

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