应用程序在所有情况下的位置感知
Posted
技术标签:
【中文标题】应用程序在所有情况下的位置感知【英文标题】:App location awareness in all contexts 【发布时间】:2018-05-28 16:13:18 【问题描述】:我需要让我的应用了解用户在 FG 和 BG 中运行的所有活动、片段和服务中的位置。此外,在中国也必须有位置,因此 Google Play 服务的 FusedLocation 似乎不是一个选项。
有没有一种方法可以让应用在不考虑上下文的情况下感知位置变化,而无需在每个 act/frag/serv 中创建侦听器并在生命周期中附加和分离?
【问题讨论】:
【参考方案1】:听起来你想extend the application class。通过这样做,可以公开全局变量和方法。抱歉,对于您的特定情况,该链接不是一个很好的示例,也许您可以找到更好的示例。更新清单中的标签 android:name=MyExtendedApplicationClass
【讨论】:
应用程序在后台运行时是否也可用? 好点。您可以使用aidl 接口与服务进行通信,但这会复杂化而不是简化。 ***.com/questions/12381977/… 或从服务中获取应用程序上下文? Google location api是从ui线程调用的,对吗?所以我认为你不会有问题,但我可能是错的。无论如何都要考虑一下。【参考方案2】:对于您可以使用的中国地图, https://www.mapbox.com/。
注意:他们在 Play 商店中有一个测试应用,在使用 SDK 之前检查一下。
要让您的应用在不使用样板代码的情况下感知位置,请查看 android 中的绑定服务。这些基本上是在后台运行的服务,并从它们启动的任何位置提供输出。
查看android开发文档Bound Services中的代码示例。
您可以拥有一个可以访问位置绑定服务的 BaseActivity。您剩余的活动可以从这个 BaseActivity 继承。我希望您能够弄清楚其余的问题,因为您的问题的确切代码太大而无法作为答案发布。
【讨论】:
以上是关于应用程序在所有情况下的位置感知的主要内容,如果未能解决你的问题,请参考以下文章