J'ai un thread qui tente d'obtenir l'emplacement de l'utilisateur. Lorsque l'emplacement est reçu, "handler.sendMessage (msg)" est appelé et renvoie true, mais handleMessage n'est jamais appelé.handleMessage non appelé
Il n'y a pas d'erreur ou d'avertissement dans logcat.
Le code:
public class LocationThread extends Thread implements LocationListener {
// ... Other (non-relevant) methods
@Override
public void run() {
super.run();
Looper.prepare();
mainHandler = new Handler(Looper.myLooper()) {
@Override
public void handleMessage(Message msg) {
// This method is never called
}
};
locationManager.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER, 0, 0, this);
Looper.loop();
}
@Override
public void onLocationChanged(Location location) {
// SendMessage is executed and returns true
mainHandler.sendMessage(msg);
if (mainHandler != null) {
mainHandler.getLooper().quit();
}
locationManager.removeUpdates(this);
}
}
vous l'avez écrit chèque OnLocation changé dans l'appareil ... –
Est-ce que vous essayez d'avoir la méthode handleMessage quitter la boucle? – Fildor
J'ai juste essayé, mais ça n'a pas fait de différence. –