我开发一个应用程序,通过GPS跟踪用户,并提醒他们是否跨越收费桥。使用WakefulIntentService管理异步GPS更新
我明显需要GPS位置侦听器在服务中运行,而且我还需要一个局部唤醒锁,以便在电话处于睡眠状态时偶尔运行。 我也希望GPS更新的频率有所不同,具体取决于距收费桥的距离以节省电池。 cwac- WakefulIntent服务似乎是我想要达到的目标。
但是,在我走下这条路线之前,我可以看到我遇到的一些问题(如果你赦免双关语;-)。
WakefulIntent服务是否会退出并释放唤醒锁doWakefulWork()即使我等待我的位置侦听器返回一些GPS更新也会完成唤醒。
如何防止doWakefulWork返回,直到我得到位置更新和清理我的侦听器。
如果在警报管理器再次启动服务时,即在doWakefulWork()完成之前,我还在等待GPS更新,会发生什么情况?
如何在服务的实例之间持久保存数据。我可以将一组GPS配合物放入SharedPrefs吗?
最后,当我靠近收费桥时,我需要更多的GPS频繁更新。我是否在doWakefulWork()中管理它,或者通过更改scheduleAlarms()来使用setRepeating()以及服务存储在SharedPrefs中的分钟数。这里的想法是根据感兴趣区域的接近度来限制GPS使用。
尽管演示应用程序提供了一个可用的模板,但我一直无法找到WakefulIntentService执行任何异步作业的任何可靠示例。
谢谢。指向doProximityAlert()的指针给了我一个去处。现在我只需要弄清楚如何使用wakelock编写服务或使用始终运行的服务模板。 – user1325094 2012-04-16 05:59:03