Android GPS - 好奇的冷启动行为

时间:2011-10-05 02:36:28

标签: java android gps

行为如下:

启动我的应用程序'冷却,例如设备全天关机,然后在任意位置启动。

GPS将做两件事:它将按预期工作,我将收到位置更新,或者它只是“坐下来”。那里。

这可能是全部而且很好,因为它可以花费一些时间来获得修复,但是这就是困扰我的事情:

如果我打开一个使用GPS的特别好的竞争对手的应用程序,他们会立即得到修复。如果我然后返回我的应用程序,我的应用程序突然接收更新并正常工作。

也许是他们知道,让我知道,但如果有任何人有任何见解,他们愿意分享......

这是我的GPS代码:

private void initGPS() {
    String ls = Context.LOCATION_SERVICE;
    mLocationManager = (LocationManager) getSystemService(ls);
    Criteria criteria = new Criteria();
    criteria.setAccuracy(Criteria.ACCURACY_FINE);
    criteria.setAltitudeRequired(false);
    criteria.setBearingRequired(false);
    criteria.setCostAllowed(true);
    mProvider = mLocationManager.getBestProvider(criteria, true);
    if (mProvider == null) {
        mHandler.postDelayed(checkGPS, 1000);
        return;
    } else {
        mHandler.removeCallbacks(checkGPS);
    }
    getGpsUpdates();
}

private void getGpsUpdates() {
    mLocationManager.requestLocationUpdates(mProvider,
            mTimeBetweenGPSUpdates, mDistanceBetweenGPSUpdates,
            locationListener);
    mLocationManager.addGpsStatusListener(gpsStatus);
}

很简单。从日志语句来看,事情似乎正在发挥作用。 getGpsUpdates()会触发一次,但之后我没有得到位置更新。

谢谢, 戴恩

0 个答案:

没有答案