android - TimerTask、Geolocation 和 Looper

标签 android geolocation timertask looper

我需要在我的应用程序中执行以下逻辑: 每分钟,我都希望能够收听 GPS 位置 20 秒以获得 GEO 定位修复。

这显然需要运行与 UI 线程不同的线程。

然而,我在结合使用 looper 和 timertask 时遇到了一些问题......

实现此目标的最佳方法是什么?

最佳答案

我猜你需要使用 Service :

安卓文档:

A Service is an application component representing either an application's desire to perform a longer-running operation while not interacting with the user or to supply functionality for other applications to use.

所以服务启动LocationManager使用 requestLocationUpdates()并实现 LocationListener .

那么你有(至少)两个解决方案(取决于你想做什么):

  • 将事件分发给需要使用 Location 的 Activity(例如使用 Broadcast)
  • Activity 可以访问该服务并使用 getter 获取最新位置。

关于android - TimerTask、Geolocation 和 Looper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7777629/

相关文章:

django - 如何按 django 中的自定义区域过滤位置?

python - 如何使用 Python basemap 更快地绘制地理定位的 RGB 数据

java - java中的一个操作重新启动计时器

java - 如何在运行时更改我的 TimerTask 的执行周期?我

java - Android 中的类就像 Swift 中的 Struct

android - 如何使用 Volley 发送带有 JSON 正文的 POST 请求?

android - 如何在所有条件下(在乡村和城市)准确快速地获取 GPS 坐标

android - Logcat 为什么叫 LogCAT

javascript - 地理位置/Javascript 范围问题

java - 我需要取消在 MainActivity 的服务类中启动的计时器,但出现空引用异常