我正在开发一个位置记录应用程序,它每秒保存一个电话位置。
我已经实现了一个订阅 LocationManager 更新的服务:
HandlerThread thread = new HandlerThread("LocationServiceHandler");
locationManager.requestLocationUpdates(GPS_PROVIDER,
1000 /* milliseconds*/, 0 /* meters */, listener, thread.getLooper());
该服务通过绑定到应用程序上下文来启动。
应用程序通常在后台运行,不需要任何用户交互。
一般来说,当我在我的建筑物周围走动时它工作正常 - 该服务每秒获取一个新的位置+时间戳并将其存储到位于外部存储的文件中。
但是当我到达远离城市的开阔场地时,我发现日志文件中的记录之间有 4-5 分钟的间隔。我可以肯定地说,当时手机没有使用,它在开阔的天空下,没有任何可见的东西挡住了卫星。它不规律地发生,大约每小时一次,我无法在我的办公室重现这种行为。
有什么想法,可能是什么原因造成的?如何避免?
手机是 Nexus S,Android 2.3.4