0

这是我的代码,行为有点奇怪:

locationOverlay = new MyLocationOverlay(this, map) {
    @Override
    public void onLocationChanged(Location location) {
        super.onLocationChanged(location);
        updatePosition(locationOverlay.getMyLocation());
    }

    @Override
    public void onProviderDisabled(String provider) {
        if(provider.equals(LocationManager.GPS_PROVIDER))
            showNoGPSWarning();
    }
};

showNoGPSWarning显示一个对话框,询问是否应启用 GPS(像这样)。
一切都很好,除非我在禁用 GPS 的情况下启动活动并在showNoGPSWarning()对话框中按“否”。然后我的应用程序根本不听 GPS 变化。

如果我打开它,什么都不会发生。Google 地图 API 不会尝试获取 GPS 信号。如果我将其关闭,onProviderDisabled()则不会再发生任何事情,不会被调用。
正如我所说,这是发生的唯一方法,如果我在对话框中按“是”,它就会起作用。
那么我的对话框如何影响我的应用程序的行为?

4

1 回答 1

1

当您按下是/否时,再次尝试请求位置更新,如下所示。希望能帮助到你。

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000L, 2000.0f, myLocationListener);
于 2012-08-28T13:33:16.790 回答