Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android LocationManager进入睡眠状态?_Android_Gps_Locationmanager - Fatal编程技术网

Android LocationManager进入睡眠状态?

Android LocationManager进入睡眠状态?,android,gps,locationmanager,Android,Gps,Locationmanager,我正在开发一个位置记录应用程序,它每秒保存一个电话位置。 我实现了一个订阅LocationManager更新的服务: HandlerThread thread = new HandlerThread("LocationServiceHandler"); locationManager.requestLocationUpdates(GPS_PROVIDER, 1000 /* milliseconds*/, 0 /* meters */, listener, thread.getLoope

我正在开发一个位置记录应用程序,它每秒保存一个电话位置。
我实现了一个订阅LocationManager更新的服务:

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

这款手机是Nexus S,安卓2.3.4

您使用的是wakelock吗?手机可能会进入睡眠状态,因此您会错过位置。否则,可能只是locationmanager不提供位置,因为1000毫秒是最佳情况。请查看答案。

不,我没有使用唤醒锁,但这很容易检查。我所需要的就是启动我的应用程序,不要触摸手机。。。让我们假设一小时一次,但是不,手机没有让LocationManager进入睡眠状态。我是这样检查的:我启动了应用程序,锁定了手机屏幕,走了很长一段路(超过两个小时)。电话在我的口袋里,我根本没碰它。之后,我分析了日志,发现了大约2秒的间隔,这并没有困扰我。仍然无法重现4-5分钟的长间隔。。。