取消注册Android中的侦听器崩溃

时间:2011-04-27 12:56:25

标签: android networking gps listener

我有一个按钮,当我按下它时,它调用方法whatIsEnabled()(GPS,网络或两者)并注册位置监听器。我的问题是当我运行onPause()并且Resume方法正在运行时(正在进行工作,所以当它工作时我感激不尽)但是当我把onPause mothos取消注册时,它会刷新。 代码:

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();

}

0 个答案:

没有答案