2011-08-19 90 views
1

我正在开发一个位置日志记录应用程序,可以每秒保存一个电话位置。
我实现了订阅的LocationManager更新服务:Android LocationManger进入睡眠状态?

HandlerThread thread = new HandlerThread("LocationServiceHandler"); 
locationManager.requestLocationUpdates(GPS_PROVIDER, 
    1000 /* milliseconds*/, 0 /* meters */, listener, thread.getLooper()); 

服务开始通过结合到应用环境中。
应用程序通常在后台运行,不需要任何用户交互。
通常,当我在我的建筑物周围走动时它可以正常工作 - 服务每秒获得一个新的位置+时间戳,并将其存储到位于外部存储的文件中。
但是当我开始远离城市的空地时,我发现日志文件中的记录之间有4-5分钟的间隔。我可以肯定地说,那时电话没有被使用,而且是在敞开的天空下,没有任何可见的东西阻挡卫星。它不规则地发生,每小时一次,我不能在我的办公室重现这种行为。
任何想法,可能会导致什么?如何避免?
手机是Nexus S,Android 2.3.4

回答

0

您是否在使用唤醒锁?手机可能会进入睡眠状态,因此您会错过地点。否则,它可能只是位置管理者,因为1000毫秒是最好的情况,所以不给你位置。请参阅Update GPS Listener every 5 seconds的答案。

+0

不,我不使用唤醒锁,但可以轻松检查。我需要的只是启动我的应用程序,不要触摸手机...让我们说一个小时 – GetUsername

+0

可悲的是,但不是,手机没有让LocationManager进入睡眠状态。我已经检查过这种方式:我已经启动了应用程序,锁定了电话屏幕并且走了很长时间(超过两个小时)。手机在我的口袋里,我根本没有碰它。之后,我分析了日志,发现了2秒的差距,这并没有打扰到我。仍然无法重现长4-5分钟的间隔... – GetUsername

相关问题