最近在搞Android上的GPS的东西, 老是上下不通,未曾数据,调试中.因而精细的分析了 从上到下的代码.灵魂函数是
requestLocationUpdates函数,重要是用来启用一个监视器,去监听位置改变消息
废话不多说开始分析
1. 率先找到requestLocationUpdates函数的位置
/Android_work_path/frameworks/base/location/java/android/location/LocationManager.java
public void requestLocationUpates(String provider, long minTime float minDistance, LocationListener listener){ ... _requestLocationUpdates(Provider, minTime, minDistance, listener); //中心函数 ...}
这个函数即便推断一下参数provider是否为空,不为空就去call 那个中心函数,很容易没难度
继续在该函数中查找
private void _requestLocationUpdates(String provider, long minTime, float minDistance, LocationListener listener, Looper looper) { if (minTime < 0L) { minTime = 0L; } if (minDistance < 0.0f) { minDistance = 0.0f; } try { synchronized (mListeners) { ListenerTransport transport = mListeners.get(listener);//中心函数 if (transport == null) { transport = new ListenerTransport(