android - 在 android 服务的单独线程中运行位置更新

标签 android service location runnable

我在决定应该如何执行我的后台服务任务时感到有些困惑。以下是我的服务的样子。

Android服务(后台有两个任务)

  1. 注册 locationListener 并在收到新位置时处理它以确定是否是最佳位置。

  2. 每 10 分钟轮询一次服务器,以检查是否有任何服务器端对远程数据库进行了更改。

现在我不希望这两个任务争夺时间和资源。所以我打算同时运行这两个。对于轮询服务器,我正在使用重复的 timerTask 但是对于 LocationListener 我应该使用什么?

是否可以使用 java runnable 以某种逻辑处理新位置并将位置更新到服务器?如果我的想法没问题,请提供一些示例代码来说明如何在新线程中执行位置更新。

如果您认为我目前的想法有任何问题,请针对我的要求提出一些新的建议。

最佳答案

我什么也没看到,这表明您不能在文档中注册在您的服务中运行的 LocationListener: http://developer.android.com/reference/android/location/LocationListener.html http://developer.android.com/guide/topics/location/obtaining-user-location.html

这是一个有答案的类似问题,您应该阅读它: Android service with locationListener callbacks

“现在我不希望这两个任务争时间和资源。所以我打算同时运行这两个任务。” ^ 含糊不清的陈述之后是一个看似违反直觉的计划。如果您能具体说明“时间”和“资源”的含义,那么您可能会得到一些有用的反馈。

简答: 是的。注册一个 LocationListener,它会在 Location 更新可用时被调用。它是一个 LISTENER,因为无论您将它注册到什么地方,它都会在需要时被调用——您不需要自己调用它。最佳做法是不要在 TimerTask 上重复,而是使用由每次 tick 调用的代码重置的单发。

至于免费代码,也许您应该聘请某人为您完成繁重的工作?它将在 Android 社​​区中创造另一份工作,并减轻您尝试您不熟悉的事情所涉及的风险。否则,亲自动手并尝试以您认为最有效的方式实现它,回到Stack Overflow 如果/当您遇到特定问题时。

关于android - 在 android 服务的单独线程中运行位置更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9440833/

相关文章:

android - 旋转Android手机时EditText丢失用户输入

android - 使用 achartengine,如何在不使用 x 标签的情况下设置 x 轴值?

java - java String 和 String Builder 问题

windows - 有没有收到消息就 sleep 的方法?

android - 如何创建在 Activity 结束后运行的android服务

java - 接口(interface)的概念应用于基于位置的应用程序

android - HMS Location Kit,仅当用户选择 "Allow all the time"时位置更新才有效

java - 将非 Android 项目添加到 Android 项目

android - Kotlin位置离我的位置很远我该如何使其更加准确

validation - 用于验证 csv 文件的已知服务