Я искал код, и вот что у меня есть:
requestLocationUpdates регистрирует onLocationChangeListener.
Это, в свою очередь, сохраняется в качестве ключа в хэш-карте со значением ListenerTransport.
ListenerTransport имеет закрытую переменную , о которой идет речь. ListenerTransport просто кажется классом, который получает сообщение, которое вызывает метод onLocationChange слушателя.
Вот где я потерялся:
ListenerTransport расширяет ILocationListener.Stubs
, что расширяет Binder. Следовательно, это тип вызова RPC. Но куда звонит?
Я заметил в ILocationListener.Proxy
в requestLocationUpdates()
, есть звонок на IBinder.transact(Stub.TRANSACTION_requestLocationUpdates,...)
. Видно, куда это идет и что происходит ...