0

我有一个使用谷歌 MapView 的应用程序。它在 AVD 上运行良好,但有时在我的 LG Optimus Elite Android 手机上运行不佳。当我在手机上启动应用程序时,当手机接收到 Wi-Fi 信号时,地图不显示 - 它只显示光栅标记。有时20分钟不显示地图,有时5分钟后显示地图。如果我带着手机四处转转,​​它离开 Wi-Fi 并进入 3G,地图通常会在大约一分钟后出现。

MapView 定义如下...

<com.google.android.maps.MapView
    android:id="@+id/mapview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:apiKey="my key goes here"
    android:clickable="true" />

当我启动应用程序时,我执行以下操作...

static MapView myMapView;
static MapController mc;

myMapView = (MapView) findViewById(R.id.mapview);    
myMapView.setBuiltInZoomControls(true);
mc = myMapView.getController();   
mc.setZoom(20);
myMapView.setSatellite(true);
myMapView.setTraffic(false);    
myMapView.invalidate(); //(tried both with and without this invalidate)

同样,地图会立即在 AVD 模拟器中显示。

我需要做些什么来启动这张地图吗?

4

2 回答 2

0

这通常是 API 密钥问题。您需要在此处设置 API KEY:

 android:apiKey="my key goes here"
于 2012-12-03T17:06:12.673 回答
0

一般来说,地图出现在设备中的速度应该与它在模拟器中出现的速度一样快。

我曾经在我的应用程序中有一个愚蠢的错误,导致类似的行为。这与您将遇到完全相同的问题非常不同,但可以提示您可能导致该行为的原因。

基本上,我有类似的东西:

private Runnable myRunable = new Runnable() {
    public void run() {
        //do something
    mHandler.postDelayed(myRunable , delay);    
    }
};

允许延迟为0,它会导致连续循环和非常高的 CPU 利用率。

奇怪的是,在模拟器中,虽然运行速度较慢。在设备中,在屏幕上绘制地图需要很长时间。

问候。

于 2012-12-03T18:14:04.233 回答