当前位置: 首页 > 知识库问答 >
问题:

获取位置一旦在后台在任何时候Android StudioJava

鲜于峰
2023-03-14

我想在后台运行服务时获得一次设备的位置(追踪器监视数据库中的变化,然后执行应该获得手机地理位置的代码)。我遇到了一个问题:程序在应用程序运行时接收位置数据,但当它进入后台时,位置数据在几秒钟内停止接收。我尝试了我能找到的所有代码和选项,但当程序进入后台时,一切都停止工作。为此我使用了Android StudioJava。那么我如何实现这一点,甚至可能吗?谢谢。

共有2个答案

锺星腾
2023-03-14

在后台获取位置有很多限制,请参考以下内容

  1. 您的目标是API级别29或更高吗?如果是,您是否在清单中添加了ACCESS_BACKGROUND_LOCATION权限?如果没有声明,应用程序只能在前台访问位置。
  2. 即使在声明ACCESS_BACKGROUND_LOCATION权限后,由于限制,应用程序在一小时内只能获得几次位置数据。也许你可以考虑使用前台服务来避免这样的限制。
萧允晨
2023-03-14

在Android上有两种类型的服务——前台和后台。现代Android系统上的后台(默认设置)在应用程序不再位于前台2分钟后被删除。前台服务的保存时间更长,需要你有一个通知,以便用户知道你在跟踪他(想想优步和它运行时你不能刷走的通知),但如果其他应用需要它,它仍然可以被删除以获取资源。您不能依赖任何永久运行的服务。

因此,答案要么是前台服务,要么是完全不同的程序架构。第二个问题实际上取决于你想在什么时候以及为什么得到这个位置。

 类似资料:
  • 我有ListView显示从服务器下载的图像。我需要执行的步骤是: 调用api获取流。 从该流中获取字节[]。 将这些字节保存在File对象(在sd卡中)中。 从该文件路径/位置获取位图。 在ImageView中显示位图。 前4个步骤需要在后台线程中执行,以保持主线程未被占用,以便用户可以在后台下载图像时顺利滚动列表。第 5 步需要在 UI 线程上执行。 我在后台执行这些步骤时遇到问题。 这就是我在

  • 我的背景粘性服务是杀死奥利奥和更高的设备,任何解决方案,以获得位置的背景服务时,活动是在后台

  • 我正在努力实施这篇文章中给出的建议。 不幸的是,我不清楚步骤。我尝试实施这些建议,但后台时间剩余继续减少,即使我开始和停止位置服务。我是这样开发它的: InitTimer: 检查更新: 有人对我的代码中可能出现的错误有什么建议吗?正在调用initTimer和checkUpdates,但仅在后台执行时间(-10分钟)期间调用。我希望应用程序“永远”每隔n分钟更新一次位置。 我的应用程序的UIBack

  • 所以用我的代码,如果当前公会id与特定公会id相同,我想打印一条消息到控制台。bot应该检查数据库中列出的每台服务器。 这就是我的代码: 错误是ctx.guild.id不起作用,因为他找不到“ctx”。有没有其他方法可以让bot从我的数据库中遍历每个guildid行,并检查当前的行id是否与数据库中的行id相同?

  • 问题内容: 我在使用android定位系统的NETWORK提供程序获取当前位置坐标时遇到麻烦。 已经阅读了很多教程,并为我的项目实现了4到5个现有的类,所有这些类都给了我最后的坐标,而不是当前的坐标。 我很确定这个问题是我遗漏的根本问题,但是我无法理解到底是什么。 我现在正在使用的代码: 这是我的主要活动 这是我用于跟踪的课程: 这是我的AndroidManifest.xml 实际上,GPS定位工

  • 在recyclerView中获取已点击项目的位置,我在recyclerView中创建cardview和链接 我想获取位置,将开关盒设置为每个卡视图的意向活动 当我点击card view I时,他会打开另一个页面,当你点击card view 2时,他会打开另一个页面。 看看我的密码 在recyclerView中获取已点击项目的位置,我在recyclerView中创建cardview和链接 我想获取位