我有一个用于管理员工的应用程序,需要在工作时间以固定间隔10分钟追踪他们的位置。对于此工作管理器、服务或作业调度程序,最好的解决方案是什么?我已经尝试过服务,但当应用程序被强制关闭时,它不会运行并丢失员工位置
发布于 2019-09-18 22:01:37
为了周期性地跟踪位置,
大约用于X分钟的-推荐方式:
权限,则调用位置权限对话框
用于X分钟的Exact
请参见下面的示例
对于融合的位置提供程序
@Override
protected void onResume() {
super.onResume();
if (requestingLocationUpdates) {
startLocationUpdates();
}
}
private void startLocationUpdates() {
fusedLocationClient.requestLocationUpdates(createLocationRequest,
locationCallback,
Looper.getMainLooper());
}创建位置请求参数,如下所示:
protected static LocationRequest createLocationRequest() {
LocationRequest mLocationRequest = LocationRequest.create();
mLocationRequest.setInterval(LOCATION_UPDATE_TIME_INTERVAL_MINS * 60 * 1000);
mLocationRequest.setFastestInterval(LOCATION_UPDATE_FATEST_TIME_INTERVAL_MINS * 60 * 1000);
mLocationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);
return mLocationRequest;
}有关接收定期位置更新的详细文档,请查看here
来自Commonsware answer的帖子在这里:当在后台周期性地做一些事情时- JobScheduler,WorkManager,AlarmManager,FCM推送消息,等等-你必须考虑到当你做你的工作的时候你的进程可能不在身边。Android将为你创建一个进程,但它是“从头开始”。您的UI可能已经在内存中设置的任何内容,例如数据库,都将用于之前的某个进程,并且可能不会在新进程中进行设置。
https://stackoverflow.com/questions/57993013
复制相似问题