незарегистрированный сбой слушателя в Android - PullRequest
0 голосов
/ 27 апреля 2011

У меня есть кнопка, когда я нажимаю ее, она вызывает метод whatIsEnabled () (GPS, сеть или оба) и регистрирует прослушиватель местоположения.Моя проблема в том, что когда я запускаю его без onPause (), а методы Resume - это работа (работа в процессе, поэтому я благодарен, когда она работает), но когда я ставлю девиз onPause, чтобы отменить регистрацию слушателя, он творит.Код:

private OnClickListener location_button = new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        locationListener = new Coordonates(drawable, mapView, Map.this);

        switch(Settings.whatIsEnabled()) {
        case 1: {
            Toast.makeText(context, "Location services disabled",Toast.LENGTH_LONG).show();
            break;
        }
        case 2: {
            Toast.makeText(context, "Location obtained via GPS satellites",Toast.LENGTH_LONG).show();
            Toast.makeText(context, "Waiting for location",Toast.LENGTH_LONG).show();
            locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 50,locationListener);
            break;
        }
        case 3: {
            Toast.makeText(context, "Location obtained via Wi-Fi/mobile network",Toast.LENGTH_LONG).show();
            locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 1000, locationListener);
            break;
        }/*
        case 4: {
            Toast.makeText(context, "Location obtained via the best provider available",Toast.LENGTH_LONG).show();
            locationManager.
            break;
        }*/
        }
    }
};

protected void onResume() {
    super.onResume();
}

@Override
protected boolean isRouteDisplayed() {
    // TODO Auto-generated method stub
    return false;
}

@Override
protected void onPause() {
    // TODO Auto-generated method stub
    locationManager.removeUpdates(locationListener);
    super.onPause();

}
...