java - 定期扫描用户位置并更新本地数据库的后台进程,即使在应用程序未打开时也是如此

标签 java android service background-process intentservice

我正在创建一个应用程序,它每半小时检查一次用户位置并更新本地数据库中的用户位置,然后根据用户的位置运行 CRUD 查询,即使该应用程序未运行也是如此。我该怎么做?

我已经提到了这个http://techtej.blogspot.com.es/2011/03/android-thread-constructspart-4.html文章,我仍然对哪种方法是我的结果的正确方法感到困惑?

根据文章,我打算实现的目标有 4 个选项

1) 服务:但是因为我觉得这对本地数据库来说是一个很长的操作,所以我觉得我应该忽略这个。

2) IntentService :这不能执行多个任务,所以我觉得我也应该避免这个,因为我必须获取用户的位置并扫描数据库,更新数据库(3 个任务)

3)线程:我不确定在应用程序未打开时如何调用它

4) AsyncTask:我不确定在应用程序未打开时如何调用它。

基本上我在寻找类似 CRON JOB 的东西,它在处理位置数据时在本地数据库上运行。

如果您能将我链接到一些教程并用一个简单的例子回答让我理解所有 4 种方法的区别,那就太好了。

//3 月 16 日编辑: 我已经阅读了一些关于 API 21 中引入的 JobScheduler 的内容,但不确定它是否也支持 till Gingerbread 并且它是否是解决我的问题的正确方法

谢谢

最佳答案

记录用户位置时使用带有通知的服务。只是为了创建一个道德上负责任的应用程序,通知用户该应用程序正在跟踪他们。根据定义,该服务在后台运行。

具有 setinterval(long) 30 分钟 的融合位置提供程序获取间隔。将 fastestInterval() 设置为一分钟,以便在其他应用程序使用 GPS 时接收 GPS 数据。

关于java - 定期扫描用户位置并更新本地数据库的后台进程,即使在应用程序未打开时也是如此,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29047144/

相关文章:

Java:如何嵌套我的圈子?

java - 我试图在java中绘制正方形,但它不起作用

java - 获取当前动态web项目JAVA的路径

java - MediaPlayer 中出现错误 : E/MediaPlayer: Error (1, -19) - Android

javascript - 链接可以在浏览器中使用并提供 JSON,但不能在 Angular 中使用

c# - Windows 服务 : OnPowerEvent doesn't fire

.net - 什么是 "web services"?

java - Maven CAS 和 Restfullapi

android - 无法在自定义适配器中使用 LayoutInflater

android - 是否可以在 Android 设备中查看 H.264 视频的 .mpeg 流?