¡El administrador de ubicación no elimina las actualizaciones de ubicación! [duplicar]
Posible duplicado:
Android: ¿cómo cancelar una solicitud de actualización de ubicación con intención?
Estoy tratando de deshabilitar una intención pendiente (difusión) que he creado previamente en una actividad diferente pero no puedo hacer que funcione. He leído que debo recrear la intención (con los mismos extras y todo lo demás), pasarla como un parámetro para poder instanciar el PendienteIntento y luego pasar el PendienteIntento como un parámetro al método removeUpdates de los administradores de ubicación.
En otras palabras:
Bundle extra = new Bundle();
extra.putString("name", extras.getString("poiName")); //create same extras
extra.putInt("id", extras.getInt("rowId")); //create same extras
Intent intent = new Intent(PROX_ALERT_INTENT);
intent.putExtra(PROX_ALERT_INTENT, extra); //put same extras in the intent
PendingIntent proximityIntent = PendingIntent.getBroadcast(this.getApplicationContext(),extras.getInt("rowId") , intent, PendingIntent.FLAG_UPDATE_CURRENT); //pass in the intent
LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
locationManager.removeUpdates(proximityIntent); //remove pendingIntent
Eso no funcionó, así que pensé que podría tener que ver con la intención de pasar como un objeto nuevo y no con el que se usó para crear la intención pendiente.
Así que intenté eliminar el pendienteIntent justo después de crearlo, pero tampoco funcionó:
Bundle extras = new Bundle();
extras.putString("name", poiName);
extras.putInt("id", requestCode);
Intent intent = new Intent(PROX_ALERT_INTENT);
intent.putExtra(PROX_ALERT_INTENT, extras);
PendingIntent proximityIntent = PendingIntent.getBroadcast(this.getApplicationContext(), requestCode , intent, PendingIntent.FLAG_CANCEL_CURRENT);
locationManager.addProximityAlert(
latitude, // the latitude of the central point of the alert region
longitude, // the longitude of the central point of the alert region
POINT_RADIUS, // the radius of the central point of the alert region, in meters
PROX_ALERT_EXPIRATION, // time for this proximity alert, in milliseconds, or -1 to indicate no expiration
proximityIntent // will be used to generate an Intent to fire when entry to or exit from the alert region is detected
);
locationManager.removeUpdates(proximityIntent);
¿Me pueden ayudar con eso? Ha estado molestando desde el miércoles ... ojalá tuviera más reputación para ponerle un límite a este ...
Gracias
Miguel