谷歌地图onResume

时间:2016-10-29 21:45:20

标签: android google-maps

我在我的Android应用中使用谷歌地图。一切都很好但是当我没有启用GPS服务时,我会显示一个快餐栏消息以启用。当我启用GPS并在我的Fragment der map中返回时,只有当我按下位置​​按钮时,才会自动返回我的位置。

我试图通过在我的更新方法中使用线程来解决问题,但没有。改变。有时候它有效,但有时候还不够好。

my onCreate:

 public  void init(){
    gps = new GPSTracker();
    gps.init(mActivity,mActivity);
    if (!gps.canGetLocation()) {
        gps.showSettingsAlert(mActivity,rootView);
    }else {
        initMap();
    }

我的initMap

 private void initMap(){
    try {
        MapsInitializer.initialize(mActivity.getApplicationContext());
    } catch (Exception e) {
        e.printStackTrace();
    }
    mMapView.getMapAsync(new OnMapReadyCallback() {
        @Override
        public void onMapReady(GoogleMap mMap) {
            googleMap = mMap;
            if (ActivityCompat.checkSelfPermission(mActivity, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
                googleMap.setMyLocationEnabled(true);
            }
            moveSearchCircle(new LatLng(gps.getLatitude(), gps.getLongitude()));
            updateMapPosition();
            googleMap.setIndoorEnabled(true);
            addMarker();
        }
    });
}

updateMapPosition

 private void updateMapPosition(){
        googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(gps.getLatitude(), gps.getLongitude()), 15));
   }

的onResume

 @Override
public void onResume() {
    super.onResume();
    init();
}

http://sqlmag.com/sql-server-2014/q-where-business-intelligence-development-studio-bids-sql-server-2014

1 个答案:

答案 0 :(得分:1)

也许gps.getLatitude(), gps.getLongitude()会返回零值,并且地图相机的焦点会尝试设置到此位置。 通常,获取设备位置操作需要一些时间,您应该异步执行此操作。 因此,请检查您的GPSTracker课程并查找异步方法,或查看this tutorial