1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| public class MonPremierService extends Service {
public static Handler hndXfr; // le Handler qui permet de récupérer les données
XfrData xfrData; // la classe interne qui permet le transfert
// tout le code interne au service qui va bien. Par exemple une info GPS
@Override
public void onLocationChanged(Location location) { // sur un changement de position
xfrData = new XfrData(hndXfr, location); // création d'un nouveau thread avec l'adresse du Handler vers où envoyer les infos
xfrData.start(); // lancement du thread
}
private class XfrData extends Thread {
Handler hndRet;
Location dataGPS;
public XfrData(Handler hnd, Location location) {
hndRet = hnd; // récupération du Handler
dataGPS = location; // récupération des données GPS
}
@Override public void run() { //procédure de messagerie
Message msg = hndRet.obtainMessage();
Bundle b = new Bundle();
b.putParcelable("GPS_Data", dataGPS);
msg.setData(b);
hndRet.sendMessage(msg);
}
}
} |
Partager