【发布时间】:2015-01-05 19:44:46
【问题描述】:
我正在尝试创建一个活动,启动它后,我将拥有一张地图,可以立即访问我在地图中的当前位置并朝它移动。
所以我在 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()。
标签: android google-maps-android-api-2