FusedLocationProvider 位置更新的单独类或服务?

Posted

技术标签:

【中文标题】FusedLocationProvider 位置更新的单独类或服务?【英文标题】:Separate class or Service for FusedLocationProvider Location updates? 【发布时间】:2018-11-12 07:26:36 【问题描述】:

我目前有一个名为 LocationCheck 的类。

public class SpeedCheck 

这里每 3 秒检索一次位置,并且一直持续到用户停止它为止。要开始检查位置,请在 Main Activity 中调用该类:

startLoc = new LocationCheck(this);

我想知道的是代码是否需要在服务类中,而不仅仅是一个普通类(就像现在一样)。到目前为止它没有问题,但我可能误解了服务等的概念,并且可能没有意识到它在很长一段时间内检查时可能面临的问题(对于 android 开发人员来说相当新)。

我已查看后台服务以获取位置更新,但使用 FusedLocationProvider(我正在使用)只能接收 several updates over an hour。这不会有帮助,因为我需要每 3 秒更新一次。

任何建议将不胜感激。

【问题讨论】:

【参考方案1】:

如果您需要在后台继续检查位置,请使用服务,否则您可以简单地在活动中使用它。当您不再需要该服务时,只需将其停止即可,因为如果在后台运行,它会消耗更多电量。

【讨论】:

阅读 FusedLocationProvider 的文档后发现,在后台服务中,“位置每小时仅更新几次”。那么最好使用前台服务吗? 这取决于您要达到的目标。如果您始终需要准确的位置,请使用前台服务。 感谢 jatlin,将其全部放入前台运行的服务中,一切正常。

以上是关于FusedLocationProvider 位置更新的单独类或服务?的主要内容,如果未能解决你的问题,请参考以下文章

FusedLocationProvider 位置更新的单独类或服务?

Android:FusedLocationProvider,每隔几秒获取一次位置

从 FusedLocationProvider(Google Play 服务)获取位置不会给出低于 10 米的准确度

FusedLocationProvider 始终返回 null Location 对象

使用 Google Play 服务我可以在离线模式下获取最新位置吗(FusedLocationProvider Api)

Android:使用 Fused Location Provider 检查是不是启用了位置服务