codenameone - 有没有一种方法只在发生变化时检索位置坐标
问题描述
以下方法用于启动和停止位置跟踪,使用我的应用程序几乎每分钟连续轮询位置。我只想在坐标发生变化时捕获该位置。我想知道有什么方法可以在发生变化时进行比较和检索位置。我试图手动比较使请求变慢的坐标。请指教。
public void stopTracking() {
if (time != null) {
time.cancel();
}
time = null;
LocationManager.getLocationManager().setLocationListener(null);
}
public void startTracking() {
if (time != null) {
stopTracking();
}
if (Preferences.get("LocationTracking", true)) {
long delay = Server.instance.getLoctionPollingIntervalMillis();
LocationManager.getLocationManager().setLocationListener(this,
new LocationRequest(LocationRequest.PRIORITY_LOW_ACCUARCY, delay));
time = new Timer();
time.schedule(new TimerTask() {
@Override
public void run() {
if (lastLocation != null) {
double lat = (double) lastLocation.getLatitude();
double lot = (double) lastLocation.getLongitude();
Server.instance.updateLocationInServer(lat, lot, System.currentTimeMillis(), true);
}
}
}, 30000, delay);
}
}
解决方案
删除计时器代码并将服务器更新写入LocationRequest
侦听器调用的类中。我还建议添加一个更新阈值,因为某些实现可以以非常高的频率和非常好的移动更新您。
推荐阅读
- reactjs - 如果 value 是一个对象,那么 useContext 会导致重新渲染
- asp.net - IIS url 重写为 /applicationname/url
- python - 如何在 plotly (Python) 中解决此图例标签问题?
- mongodb-realm - 如何防止滥用 Mongodb Realm app id?
- javascript - 我想从 PHP 接收 JSON(通过 JS xmlHttpRequest() 的 POST 方法发送)回显
- swift - 只能声明实例方法 @IBAction 构建音频应用程序
- c++ - 2D 数组值更改泄漏到数组中的其他值
- bash - 尝试比较 shell 脚本中的字符,但出现错误
- python - python中的随机模块
- python - Pip install dlib 卡在人脸识别 python 库中