2013-10-24 43 views
0

我想了解当调用组件移出其可见/活动生命周期时LocationManager的requestLocationUpdates(使用PendingIntent)如何工作。我知道如何使用removeUpdates取消意图,并且我已经阅读了应用程序主线程上所有服务,广播接收者和活动都已启动的所有文档,您可以创建工作线程以免破坏用户界面经验等等,但是当涉及诸如requestLocationUpdates之类的调用时,API正在照顾周期性发送意图,当调用Activity离开其可见的生命周期时,该功能会发生什么变化,这真的很模糊。例如,如果我从Activity中调用requestLocationUpdates(使用PendingIntent版本),并且没有我的代码调用该PendingIntent的removeUpdates,操作系统会停止该Activity,那么是否停止发送位置更新的PendingIntents?如果活动暂停而又怎么办?如果我希望位置更新即使在活动超出其可见的生命周期甚至活动生命周期时仍然存在,我是否应该从在从Activity创建的后台线程中启动的服务调用requestLocationUpdates?任何澄清这一点将不胜感激。请求位置更新功能的Android生命周期

回答

0

如果你把Locmanager放在一个服务中(得到点&存储),它会更好。您应该始终假定用户喜欢多任务处理,或者至少某些用户会在使用您的应用程序时接到电话。有了这个工具,你将会严重依赖意图。

+0

感谢您的意见。我会尝试的。顺便说一句,你知道关于requestLocationUpdates的任何好文档,它解释了何时以及为什么你应该从不同的组件调用它。我很担心,一旦我开始工作,它会运行一段时间,但因为我不理解它,所以我可能会遇到一个失败的情况,只是因为需要一段时间才能到达该场景。我对此进行了一些研究,似乎大部分答案都是“试试这个,似乎有效”。只是担心如果我不明白我为什么要以某种方式实施它,会使我陷入麻烦。 Thx – user1057118

+0

不幸的是没有。当我为健身应用程序开发gps锻炼功能时,我学会了这一难题。不要相信服务还活着。当它真正运行在低端内存时,android会试图杀死它。持久保存您的gps点。 sqlite也许。如果你打算开发一个GPS追踪应用程序,mytrack是一个很好的参考。 https://code.google.com/p/mytracks/ – hepizoj

+0

好的,谢谢你的信息! – user1057118