【问题标题】:How to wait for onLocationChanged() in LocationListener in the same place that invoked requestLocationUpdates()?如何在调用 requestLocationUpdates() 的同一位置等待 LocationListener 中的 onLocationChanged()?
【发布时间】:2012-05-17 07:17:51
【问题描述】:
我正在编写一个 GPS 跟踪应用程序。我正在使用 CommonsWare WakefulIntentService 和 AlarmReceiver 从 GPS 安排固定位置。问题是我必须使用 doWakefulWork() 方法是为了与同步阻塞进程一起使用,而我所拥有的是异步非阻塞方法。那么我应该如何使用 LocationListener 中的 onLocationChanged() 和 doWakefulWork() 方法中的 requestLocationUpdates() 来修复 GPS 位置?
已解决:
我刚刚发现LocationPoller已经实现了这个功能。
【问题讨论】:
标签:
android
asynchronous
wakelock
locationlistener
commonsware-cwac
【解决方案1】:
我正在使用 CommonsWare WakefulIntentService 和 AlarmReceiver 从 GPS 安排固定位置。
这不会很好。
那么我应该如何使用 LocationListener 中的 onLocationChanged() 和 doWakefulWork() 方法中的 requestLocationUpdates() 来修复 GPS 位置?
理想情况下,您不会。 IntentService 旨在使同步的东西(例如,Web 事务、数据库事务)同步。它不是为了让异步的东西更加异步(a-asynchronous?)..
我刚刚发现LocationPoller已经实现了这个功能。
无论您使用LocationPoller、fork 还是从它派生的东西,使用Service 进行本质上的异步工作都是一个更好的计划。