Codenameone BackgroundLocationListener在应用程序处于后台时不调用Rest API

Codenameone BackgroundLocationListener在应用程序处于后台时不调用Rest API,codenameone,Codenameone,我正在使用codenameoneBackgroundLocationListener将设备位置发送到服务器。(我正在侦听器中调用标准GET请求。) 当应用程序位于前台时,这项功能可以正常工作,但当我切换到其他(gps导航)应用程序、导航到主屏幕或锁定手机时,网络服务将不再被调用 按下按钮时,我正在使用标准代码注册侦听器: lmbBtn.addActionListener((evt)->{ LocationManager.getLocationManager().setBackgroundLoca

我正在使用codenameone
BackgroundLocationListener
将设备位置发送到服务器。(我正在侦听器中调用标准GET请求。)

当应用程序位于前台时,这项功能可以正常工作,但当我切换到其他(gps导航)应用程序、导航到主屏幕或锁定手机时,网络服务将不再被调用

按下按钮时,我正在使用标准代码注册侦听器:

lmbBtn.addActionListener((evt)->{
LocationManager.getLocationManager().setBackgroundLocationListener(LocationListenerImpl.class);
});
这是侦听器实现:

/**
*(c)星虫
* https://www.starbug.eu/
*/
包eu.starbug.uberis.test;
导入com.codename1.io.Log;
导入com.codename1.io.rest.rest;
导入com.codename1.location.location;
导入com.codename1.location.LocationListener;
导入com.codename1.location.LocationManager;
导入java.util.Date;
/**
*
*@作者彼得·胡萨里克
*/
公共类LocationListenerImpl实现LocationListener{
私有字符串info=“B”;
公共位置ListenerImpl(){
}
公共位置ListenerImpl(字符串信息){
this.info=info;
}
@凌驾
公共无效位置已更新(位置){
字符串url=”https://webservice/gpsLogger/?";
url+=“time=“+new Date().getTime();
url+=“&lat=“+location.getLatitude();
url+=“&lon=“+location.getLongitude();
if(info!=null&&!info.isEmpty()){
url+=”&info=“+info;
}
Rest.get(url).fetchAsString((v)->{
//
});
}
@凌驾
public void providerStateChanged(int newState){
交换机(新闻状态){
case LocationManager.exe可用:
案例位置管理器。暂时不可用:
案例位置Manager.OUT\u OF\u服务:
Log.p(“LocationListener providerStateChanged:+newState”);
//ToastBar.showInfoMessage(“LocationListener providerStateChanged:+newState”);
}
}
}

我做错了什么?应用程序未运行时,后台侦听器不应该侦听位置更新吗?

这可能是个问题,而且这些东西很难调试。。。一般来说,您不应该这样做,您有后台获取,这是一个单独的API,应该用于后台下载。这是在哪个操作系统上发生的?你能访问本机日志吗?它们通常提供发生了什么的详细信息。这是在Android 9上测试的。如有必要,我可以提供日志。但是要记录什么场景,我应该检查我的应用程序还是所有设备日志?如果我不应该这样做,我如何将设备位置记录到服务器上?只需查看设备的输出并根据您的应用程序进行过滤即可。这几乎是调试这个的唯一方法。后台位置跟踪部分起作用,并且存在问题,因为操作系统正试图针对这些用例加强隐私保护。这可能是一个问题,而且这些东西很难调试。。。一般来说,您不应该这样做,您有后台获取,这是一个单独的API,应该用于后台下载。这是在哪个操作系统上发生的?你能访问本机日志吗?它们通常提供发生了什么的详细信息。这是在Android 9上测试的。如有必要,我可以提供日志。但是要记录什么场景,我应该检查我的应用程序还是所有设备日志?如果我不应该这样做,我如何将设备位置记录到服务器上?只需查看设备的输出并根据您的应用程序进行过滤即可。这几乎是调试这个的唯一方法。后台位置跟踪部分起作用,并且存在问题,因为操作系统试图针对这些用例加强隐私保护。