Cómo administrar Loopers e hilos (¡el hilo ya no muere!)

Creé una clase que extiende Thread para recuperar la ubicación del usuario a través de LocationManager en un hilo no ui. Implementé esto como un hilo porque debe iniciarse a pedido y hacer su trabajo solo por un tiempo limitado. Por cierto, tuve que agregar un objeto Looper en el hilo, para poder crear el controlador para el LocationManager (onLocationChanged).

Este es el código:

public class UserLocationThread extends Thread implements LocationListener {
//...
public void run() {
    try {
        Looper.prepare();
        locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this);
        Looper.loop();
        Looper.myLooper().quit();
    } catch (Exception e) {
        //...
    }
}

@Override
public void onLocationChanged(Location location) {
    locationManager.removeUpdates(this);
    //...
    handler.sendMessage(msg); //this is the handler for communication with father thread
}

//...}

Me gustaría que el hilo se inicie, reciba los datos de ubicación del usuario (en este caso solo una vez), envíe los datos al hilo principal a través de un mensaje al manejador y luego muera. El problema es que, en mi caso, el hilo ya no muere, una vez que finaliza el método de ejecución (eso debería estar bien, porque de lo contrario onLocationChanged no recibiría las nuevas ubicaciones).

Pero de esta manera, suponiendo que los métodos de detención y suspensión del hilo están en desuso, ¿cuál sería una buena manera, al menos en este caso, de hacer que un hilo con un bucle muera?

Gracias por adelantado ;

Respuestas a la pregunta(5)

Su respuesta a la pregunta