Сначала создайте интерфейс наподобие MyLocationListener
, как показано ниже
public interface MyLocationListener {
public void locationChanged(double lat, double lon);
}
Теперь обновите класс GPS
как
public class GPS {
ArrayList<MyLocationListener> listeners = new ArrayList<MyLocationListener>();
public void addLocationListener(MyLocationListener listener) {
listeners.add(listener);
}
}
Итак, где вы изменили широту или долготу, просто вызов
notifyChangeLocation(lat, lon);
и этот метод имеет следующий код:
public void notifyChangeLocation(double lat, double lon) {
Iterator<MyLocationListener> itr = listeners.iterator();
while(itr.hasNext()) {
itr.next().locationChanged(lat, lon);
}
}
Это первая часть, теперь второе - добавить слушателя в вашу деятельность, создав класс MyServiceConnection
что похоже на:
public class MyServiceConnection implements ServiceConnection, MyLocationListener {
//add the unimplemented methods
public void locationChanged(double lat, double lon) {
// do any extra setup that requires your Service
}
}
ServiceConnection mConnection = new MyServiceConnection();
Intent i=new Intent(getApplicationContext(), GPS.class);
bindService(i,mConnection,Context.BIND_AUTO_CREATE);
Теперь просто зарегистрируйте слушателя gps.addLocationListener(mConnection);