我試圖創建一個活動,啓動它後,我將有一個地圖,立即訪問我在地圖中的當前位置並朝它移動。getMyLocation無法立即獲取位置,當從新活動創建時創建
所以我叫下面的的onCreate()期間...
public void moveToCurrentLocation()
{
if (!mLM.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
buildAlertMessageNoGps();
}
else
{
Location myloc = mMap.getMyLocation();
//if (myloc == null) myloc = mLM.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (myloc != null) {
LatLng position = new LatLng(myloc.getLatitude(), myloc.getLongitude());
moveToLocation(position);
return;
} else {
Toast.makeText(mContext, "Sorry no location information obtained yet. Try click again on 'current location button' on the map", Toast.LENGTH_LONG).show();
}
}
moveToLocation(SINGAPORE, false, 9);
}
發生什麼事是,getMyLocation總是首先返回null,並且只有一段時間之後,將能夠得到的位置。我使用的解決方法是從LocationManager獲取getLastKnownLocation來解決問題。但是,LastKnownLocation可能不是當前位置。
那麼我如何解決問題以確保getMyLocation在活動開始後立即獲取數據?謝謝。
將調用移動到onStart()。 –