Android GoogleMap.moveCamera从儿童活动返回后不工作
我在SupportMapFragment中有一个谷歌地图。它在初始显示中工作良好。移动摄影机,并添加一个圆。但是moveCamera和addCircle在完成子活动后停止工作Android GoogleMap.moveCamera从儿童活动返回后不工作,android,google-maps,Android,Google Maps,我在SupportMapFragment中有一个谷歌地图。它在初始显示中工作良好。移动摄影机,并添加一个圆。但是moveCamera和addCircle在完成子活动后停止工作 @Override public void onConnected(Bundle arg0) { Log.d("Main Activity", "onConnected called"); mMap.setOnMarkerClickListener(this);
@Override
public void onConnected(Bundle arg0) {
Log.d("Main Activity",
"onConnected called");
mMap.setOnMarkerClickListener(this);
mMap.setOnCameraChangeListener(this);
mMap.setOnMyLocationChangeListener(this);
// Display the connection status
Location loc = mLocationClient.getLastLocation();
mGeolocation = new LatLng(loc.getLatitude(),loc.getLongitude());
Log.d("GeoLocation",
"latitue:"+mGeolocation.latitude+" longitude:" + mGeolocation.longitude);
if(mMap.getMyLocation()==null)
Log.d("GeoLocation",
"mMap location not set yet");
else
Log.d("GeoLocation",
"mMap location-----latitue:"+ mMap.getMyLocation().getLatitude()+" longitude:" + mMap.getMyLocation().getLongitude());
CameraPosition targetPosition = new CameraPosition.Builder().target(mGeolocation)
.zoom(12.0f)
.bearing(0)
.tilt(25)
.build();
mMap.moveCamera(CameraUpdateFactory.newCameraPosition(targetPosition));
CircleOptions circleParam = new CircleOptions()
.center(mGeolocation)
.radius(MAX_DISTANCE)
.strokeColor(Color.BLUE)
.strokeWidth(5)
.visible(true);
mMap.addCircle(circleParam);
}
@Override
public boolean onMarkerClick(Marker marker) {
Vendor v = listedVendors.get(marker.getId());
if( v!=null){
Intent intent = new Intent(this, MenuActivity.class);
intent.putExtra(EXTRA_VENDOR, v);
intent.putExtra(EXTRA_GEO, mGeolocation);
intent.putExtra(EXTRA_CURRENTADDRESS, mCurrentAddress);
startActivity(intent);
}
return false;
}
@Override
public void onPause() {
Log.d("Main Activity",
"OnPause called");
super.onPause();
if (mLocationClient != null) {
mLocationClient.disconnect();
}`
}
onCameraChange事件也不被调用
提前感谢您的帮助。好的!最后,我自己解决了这个问题。不知何故,我将mLocationClient声明为活动的静态成员 私有静态位置客户端mLocationClient
这个问题是由“静态”引起的(我不知道为什么。因为它是私有的,所以除了访问它们的方式之外应该是相同的)。从上述语句中删除“static”属性后,现在一切正常。您尝试使用哪种方法连接到GoogleAppClient?我的猜测是,当您返回到初始活动时,GoogleMap再次被实例化,因此,您配置的实例与您返回时可见的实例不同。当您返回到Map活动时,是否看到名为的
onConnected日志?API可能仍处于连接状态,不需要重新连接。您能显示启动子活动的代码吗?它是在onResume中调用的,我在这里调用LocationClient的connect方法。LocationClient已在onPause中断开连接。连接位置服务时,connect方法将触发onConnected回调。我可以在onConnected中看到日志,并且可以调试到该方法中。我没有看到任何异常,但相机就是不动。