O gerenciador de localização não remove as atualizações de localização! [duplicado]
Possível duplicado:
Android: como cancelar uma solicitação de atualização de local com intenção?
Estou tentando desativar uma intenção pendente (transmissão) que criei anteriormente em uma atividade diferente, mas não consigo que ela funcione. Eu li que eu deveria recriar a intenção (com os mesmos extras e tudo mais), passá-la como um parâmetro para que eu possa instanciar o pendingIntent e depois o pendingIntent como um parâmetro para o método removeUpdates dos gerenciadores de localização.
Em outras palavras:
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
Isso não funcionou, então eu pensei que isso poderia ter a ver com a intenção de ser um novo objeto e não com o usado para criar a intenção pendente.
Tentei remover o pendingIntent logo após criá-lo, mas isso também não funcionou:
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);
Você pode me ajudar com isso ??? Seu bugging desde quarta-feira ... gostaria de ter mais reputação de colocar um limite sobre este ...
obrigado
Mike