Je dois mettre à jour
geoFence
à la sortie. Pour cela, j'ai besoin de l'emplacement actuel à ce moment-là.Obtenir l'emplacement actuel sur Geofence.GEOFENCE_TRANSITION_EXIT
Quand mon application est fermée Je n'ai pas écouteur pour onLocationChanged
. Et pour mettre à jour la géoFence, j'ai besoin de mon emplacement. Leur un moyen d'obtenir l'emplacement actuel à Geofence.GEOFENCE_TRANSITION_EXIT
public void broadcastUpdateGeoFences() {
MainActivity.isGeoFenceAdded = false;//It tells to update geoFence
Intent intent = new Intent(Constants.RECEIVER_GEOFENCE);
intent.putExtra("done", 1);
sendBroadcast(intent);
}
Diffusion récepteur dans MainActivity
private BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
if (bundle != null) {
int resultCode = bundle.getInt("done");
if (resultCode == 1) {
if(!MainActivity.isGeoFenceAdded){
updateGeoFencesOnCurrentExit();//I need current location here
}
}
}
}
};
Tout fonctionne bien. Mais Impossible de trouver un moyen de passer currentLocation à la sortie lorsque l'application est fermée.
private void updateGeoFencesOnCurrentExit(Location currentLocation){
locationHandler.updateGeoFences(currentLocation);
}
Utilisez-vous un service d'intention pour cela? – mechdon
Oui, je suis et je sais que ce devrait être un récepteur de diffusion – Nepster
Où est votre demande d'ajout de Geofences? –