我开发了一个每天运行的工业地理跟踪应用程序。它长时间使用 GPS,需要准确(仅限 GPS)和频繁(约每 5 秒)更新。
尽管此应用程序在多个相同的硬件型号(三星 Tab2)上运行,但某些设备不会报告可变长度间隔(2 分钟到 1 小时)的位置更新。(奇怪的是,这个“停电”期通常发生在 15:00-19:00 GMT+2 左右)。此外,这往往只发生在一部分设备上,这表明存在硬件问题。
另一种可能性是我在 LocationListener.onLocationChanged 内部调用的 processLocation 方法耗时过长并且卡住了(?)。(当然,这并不能解释为什么问题在特定时间段内是特定于设备子集的。)
这是该代码的复制品:
mLocationListener = new LocationListener() {
public void onLocationChanged(Location location) {
if (location.getProvider().equals("gps") && location.getAccuracy() < accuracyThresh) {
processLocation(location, time);
} else {
discardLocation(location, time);
}
}
public void onProviderDisabled(String provider) {
}
public void onProviderEnabled(String provider) {
}
};
该问题似乎在停电期后自行解决。
这可能是相关的(在某些时间间隔内,是什么导致 GPS 估计不稳定?)虽然这里没有关于这个问题出现的时间的系统性。
在那种情况下,我很难确定这是否是由我的代码中的错误引起的。
我想知道是否有人有类似的经历或可以为我指明正确的方向。有什么调试建议吗?提前谢谢了!