android - 从 child Activity 回来后 GoogleMap.moveCamera 不工作

标签 android google-maps

我在 SupportMapFragment 中有一个 GoogleMap。它在初始显示中工作正常。移动相机,并添加一个圆圈。但是 moveCamera 和 addCircle 在从其子 Activity 返回后停止工作。

@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 声明为 Activity 的静态成员

私有(private)静态 LocationClient mLocationClient;

问题是“static”引起的(不知道为什么,既然是private,除了访问方式不同,应该是一样的)。从上述语句中删除“static”属性后,现在一切正常。

关于android - 从 child Activity 回来后 GoogleMap.moveCamera 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30264731/

相关文章:

android - Android 上的 MessagePack 序列化对象错误

google-maps - 谷歌地图 -> 根据给定距离制作环形路线?

Android 无法解析符号 OnRequestPermissionsResultCallback

javascript - 继续获取 "Unexpected token ,"以及变量中的坐标

android:textCursorDrawable 未知

android:如何检查是否显示对话框 fragment

android - Cordova 在当前模拟器窗口上模拟。不是新窗口

android - 在 Android 中的 Activity 和 Intent 之间传递整数总是导致零/空

java - 使用谷歌静态 map - JFrame 或 Javascript

javascript - gmaps.js |添加新标记时删除旧标记