android - 当我的 googlemaps View Activity 重新获得焦点时出现问题(窗口下方带有黑色区域的 map )

标签 android google-maps android-mapview

我的应用程序有问题,它有很多 Activity ,其中两个有 googlemap View 。我的 A Activity 有一个完整的 map View ,我的 B Activity 有一个小 map View 。好的,当我在 B Activity 中并有时按返回键直到我返回我的 A Activity 时,我的 A Activity 的 map 显示错误,窗口下方有一个黑色区域。这仅在我从 B Activity 按回时发生。

因此,我需要实现/覆盖 A 的 onResume() 方法以重新启动 Activity 以从 SRATCH 重新绘制所有内容....想再次执行创建方法,但我认为我不能再次调用它.. . 或者我可以?

我必须放置哪些代码才能从头开始重新绘制所有窗口?

我尝试了所有这些:

-mapView.requestLayout() --> 它工作了一点,重新绘制了 map ,但缩放并显示了 B Activity 上显示的最后一张 map ...没有意义:S 我不想要那。都是不同的 map ,不一定要显示相同的坐标和缩放比例,各有各的。

-mapView.invalidate() --> 不起作用

-mapView.postInvaldiate() --> 不起作用

最佳答案

不建议在同一进程中运行多个 map (MapView)。通常,使用默认配置,所有 Activity (包括 MapActivities)都在同一进程中运行。

根据位于此处的 api 文档 http://code.google.com/android/add-ons/google-apis/reference/com/google/android/maps/MapActivity.html

每个进程仅支持一个 MapActivity。同时运行的多个 MapActivities 可能会以意想不到的方式进行干扰。

我在同一进程中遇到多个 MapView 的问题:

  • 虽然看起来有 2 应用程序中的不同 map ,变化 第一张 map (例如:将其移动到 某个位置,切换卫星 View )也反射(reflect)在 第二张图,好像是一样的 map 。
  • 有时, map block 不是 正确加载。的部分 map ,或完整的 map 仍然存在 空。
  • 在 Logcat 中,记录了 apache http 连接池错误(源自 TilesProvider)

这里记录了一个缺陷:http://code.google.com/p/android/issues/detail?id=3756

一个解决方案/解决方法是在不同的进程中托管您的 map :

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

关于android - 当我的 googlemaps View Activity 重新获得焦点时出现问题(窗口下方带有黑色区域的 map ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4269681/

相关文章:

java - 如何避免使用许多 @SerializedName ?

java - JSON Volley PUT 请求覆盖一切

android - 从服务更新 UI 比 Intent 更有效的方法?

android - osmdroid MapView IconOverlay - 有没有办法改变图标的​​大小?

java - 多个 EditText 框的 textChanged 方法

javascript - 谷歌地图 v3 : how to drop markers, 删除,再次循环

Android - 谷歌地图集成空网格

c# - Xamarin 形成 Geocoder GetPositionsForAddressAsync 间歇性 android 结果

java - map View 显示黑色区域

android - 使用 Android map 进行车辆跟踪