Кто запускает onLocationChanged в LocationManager в Android? - PullRequest
4 голосов
/ 31 августа 2011

Я искал этот ответ в предыдущих постах о Android Location Provider, но не смог найти ответ.Как срабатывает onLocationChanged и как происходит процесс, поскольку демон / библиотека GPS фиксирует местоположение, пока оно не достигнет LocationManager?Он напрямую запускается демоном Gps или сначала в Android Java Framework?

Большое спасибо

N

Ответы [ 2 ]

4 голосов
/ 01 сентября 2011

Я искал код, и вот что у меня есть:

requestLocationUpdates регистрирует onLocationChangeListener. Это, в свою очередь, сохраняется в качестве ключа в хэш-карте со значением ListenerTransport.

ListenerTransport имеет закрытую переменную , о которой идет речь. ListenerTransport просто кажется классом, который получает сообщение, которое вызывает метод onLocationChange слушателя.

Вот где я потерялся: ListenerTransport расширяет ILocationListener.Stubs, что расширяет Binder. Следовательно, это тип вызова RPC. Но куда звонит?

Я заметил в ILocationListener.Proxy в requestLocationUpdates(), есть звонок на IBinder.transact(Stub.TRANSACTION_requestLocationUpdates,...). Видно, куда это идет и что происходит ...

1 голос
/ 31 августа 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...