Java Android:无法显示当前位置

Java Android:无法显示当前位置,java,android,map,Java,Android,Map,我在Android应用程序中创建了以下onCreate: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.customer_map); context=getApplicationContext(); mapView = (MapView) findViewB

我在Android应用程序中创建了以下onCreate:

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.customer_map);

        context=getApplicationContext();

        mapView = (MapView) findViewById(R.id.map);
        mapView.setBuiltInZoomControls(true);
        mapView.setEnabled(true);
        mapOverlays = mapView.getOverlays();


        //set my location marker
        myLocationOverlay = new MyLocationOverlay(context, mapView);
        myLocationOverlay.disableCompass();
        myLocationOverlay.enableMyLocation();
        mapOverlays.add(myLocationOverlay);

        myLocationOverlay.runOnFirstFix(new Runnable() {
            public void run() {
                mapView.getController().animateTo(myLocationOverlay.getMyLocation());
            }
        });



        //and zoom to current location
        MapController mc=mapView.getController();
        GeoPoint centre=new GeoPoint((int)(getBestLocation().getLat()*1e6),(int)(getBestLocation().getLng()*1e6));
        mc.setCenter(centre);
        mc.animateTo(centre);
        mc.setZoom(12);
    }
如您所见,我正试图显示当前位置。但它根本不起作用!我想我在做一些傻事,但我在最后一个小时都没弄明白

非常感谢您的任何见解。多谢各位

p、 这里是getBestLocation:

private Coords getBestLocation() {
        Coords returnCoords=new Coords();

        Criteria criteria=new Criteria();
        //criteria.setAccuracy(Criteria.ACCURACY_FINE);
        criteria.setAccuracy(Criteria.POWER_LOW);
        criteria.setAltitudeRequired(false);
        criteria.setBearingRequired(false);


        lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        String provider=lm.getBestProvider(criteria, true);
        if(provider!=null){
            lm.requestLocationUpdates(provider, 2000, 1, this);
            List<String> providers = lm.getProviders(false);
            //Loop over the array backwards, and if you get an accurate location, then break out the loop
            Location l = null;
            for (int i=providers.size()-1; i>=0; i--) {
                l = lm.getLastKnownLocation(providers.get(i));
                if (l != null ){
                    returnCoords.setLat(l.getLatitude());
                    returnCoords.setLng(l.getLongitude());
                    break;
                    //Log.i("EOH",String.valueOf(l.getLatitude()));
                }
            }
        }else{
            Toast.makeText(context, "Location not available", 3000).show();
        }
        return returnCoords;
    }

好的,现在开始工作了。愚蠢的是,我这样做:

@Override
    protected void onPause() {
        super.onPause();
        if(myLocationOverlay!=null){
            myLocationOverlay.disableMyLocation();
            myLocationOverlay.disableCompass();
        }
    }
    @Override
    protected void onResume() {
        super.onResume();
        if(myLocationOverlay!=null){
            **myLocationOverlay.disableLocation();**
            myLocationOverlay.disableCompass();
        }
    }

我是个笨蛋

你看到了什么?您是否丢失了覆盖或完全丢失了地图视图?您到底遇到了什么问题?据我所知,您的getBestLocation方法可能导致了问题。我缺少标记。地图显示得很好。顺便说一句,getBestLocation正在返回正确的GPS坐标