TimerTask、地理定位和 Looper

发布于 2024-12-10 05:15:02 字数 167 浏览 0 评论 0原文

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

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

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

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

I need to perform the follow logic in my application:
Every minute, I want to be able to listen to GPS location for 20 seconds to get a GEO-location fix.

This obviously needs to run a different thread than the UI thread.

I am however having some problems with using looper and timertask in conjuction...

What's the best way to achieve this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

鱼窥荷 2024-12-17 05:15:02

我想你需要使用 Service

Android doc :

服务是一个应用程序组件,代表应用程序希望在不与用户交互的情况下执行长时间运行的操作,或者提供功能供其他应用程序使用。

因此,服务启动 LocationManager 使用 requestLocationUpdates() 并实现 LocationListener

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

  • 将事件分派到需要使用位置的活动(例如使用广播)
  • 活动可以访问服务并使用getter获取最新位置。

I guess you need to use a Service :

Android doc :

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.

So the Service start the LocationManager using requestLocationUpdates() and implements LocationListener.

Then you have (at least) two solutions (depending on what you want to do) :

  • dispatch the event to the Activity that need to use the Location ( with a Broadcast for example )
  • the Activity has an access to the service and uses a getter to get the latest location.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文