我在之前关于android位置提供商的帖子中寻找这个答案,但我找不到答案。onlocationchanged是如何触发的?gps守护进程/库在到达locationmanager之前修复一个位置的过程是什么?它是由GPS守护进程直接触发的还是在Android Java框架中最先发生的?
多谢
n

最佳答案

我一直在查看代码,到目前为止这就是我所拥有的:
requestLocationUpdates注册onLocationChangeListener。
这反过来gets stored作为hashmap中值为listenertransport的键。
listenerTransport有一个private variable是所讨论的侦听器。listenerTransport似乎只是一个接收消息的类,该消息calls the onLocationChange method属于侦听器。
这就是我迷路的地方:
listenertransport延伸ILocationListener.Stubs延伸粘合剂。因此,它是一种rpc调用。但电话打到哪里去了?
我注意到在ILocationListener.ProxyrequestLocationUpdates()中,有一个对IBinder.transact(Stub.TRANSACTION_requestLocationUpdates,...)的调用。我们要看看这是怎么回事…

09-30 23:03