LocationManager 调用 onLocationChanged 太频繁?

2024-01-13

我已将 LocationManager 设置为每 2 分钟获取一次当前位置:

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 120000, 0, this);

这工作正常,并且 onLocationChanged 按预期每 2 分钟调用一次。然而,它似乎在 10-40(随机量)秒内被多次调用every2分钟。我记录了 onLocationChanged 中收到的每个位置,因此这里有一些示例,可以帮助您了解正在发生的情况:

At 17:30

GPS 32.0 50.66318929195404 10.735434293746948 0.0 2010.08.07 17:30:10
GPS 32.0 50.66315710544586 10.735423564910889 0.0 2010.08.07 17:30:14
GPS 32.0 50.66314101219177 10.735418200492859 0.0 2010.08.07 17:30:17
GPS 32.0 50.66314101219177 10.735418200492859 0.0 2010.08.07 17:30:20
GPS 24.0 50.66313564777374 10.735418200492859 0.5 2010.08.07 17:30:24
GPS 32.0 50.663098096847534 10.735573768615723 0.0 2010.08.07 17:30:28         
GPS 32.0 50.663065910339355 10.735611319541931 0.0 2010.08.07 17:30:31

然后我有 2 分钟没有收到更多更新。

At 17:32

GPS 32.0 50.661821365356445 10.737022161483765 1.0 2010.08.07 17:32:39
GPS 16.0 50.66170871257782 10.737043619155884 1.8200275 2010.08.07 17:32:45
GPS 24.0 50.661579966545105 10.737027525901794 1.25 2010.08.07 17:32:50
GPS 16.0 50.66150486469269 10.73712408542633 1.0 2010.08.07 17:32:55
GPS 12.0 50.661579966545105 10.73715090751648 0.9013878 2010.08.07 17:33:01
GPS 24.0 50.66139221191406 10.737038254737854 1.5811388 2010.08.07 17:33:06
GPS 16.0 50.66141366958618 10.737301111221313 0.70710677 2010.08.07 17:33:12
GPS 16.0 50.66141366958618 10.737301111221313 0.70710677 2010.08.07 17:33:12
GPS 24.0 50.661311745643616 10.737070441246033 1.118034 2010.08.07 17:33:16
GPS 16.0 50.66122591495514 10.737177729606628 1.118034 2010.08.07 17:33:22
GPS 12.0 50.66124200820923 10.737220644950867 1.3462912 2010.08.07 17:33:26
GPS 12.0 50.661311745643616 10.737268924713135 3.6055512 2010.08.07 17:33:25

依此类推...然后 2 分钟后 17:35 发布另一组更新。

这是标准行为吗?我原本期待只得到one每 2 分钟更新一次位置,并且它为我提供位置更新的时间跨度似乎相当随机。理想情况下,我宁愿只获得一个位置......有没有办法做到这一点?


从文档requestLocationUpdates(String provider, long minTime, float minDistance, LocationListener listener)关于minTime范围:

“通知的最小时间间隔,以毫秒为单位。该字段仅用作节省电量的提示,位置更新之间的实际时间可能大于或小于该值。”

所以你的问题的答案是,是的,这是标准行为,不,你无法改变这一点。

如果这对您来说是个问题,那么在未经过一定时间的情况下,您可以忽略对回调方法的调用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LocationManager 调用 onLocationChanged 太频繁? 的相关文章

  • 如何检测 Android 设备中的新应用

    我想检测用户何时安装或删除应用程序 但没有找到BroadcastReceiver就是这样做的 在我的应用程序中 我获取了有关该类已安装应用程序的信息PackageManager 但我不想定期扫描应用程序 有没有BroadcastReceiv
  • 在 Eclipse Indigo 中安装 ADT 中未找到存储库错误

    当我尝试安装 ADT 时出现此错误 An error occurred while collecting items to be installed session context was profile epp package jee p
  • Android - SimpleCursorAdapter 是否允许像 BaseAdapter 一样的多种布局?

    我知道你可以创建一个自定义Adapter延伸BaseAdapter并创建各种布局 这些布局可以根据哪一行进行扩展AdapterView is at 但是有没有什么方法可以通过SimpleCursorAdapter 例如 我有一个数据库 我想
  • 如何将数据从当前活动传递到暂停的活动?

    我想知道如何将数据从当前活动传递到暂停的活动 请指教 我们将暂停的活动称为 A 将 当前 活动称为 B 让 B 将结果传达给 A 的方法是 A 调用startActivityForResult 代替startActivity 并供 B 使用
  • firebase android 基于类的更新不尊重字段名称的大小写

    我声明了以下类 注意大小写选择 public class User private String DisplayName private Boolean Proxy false SuppressWarnings unused public
  • 如何阻止 Android ViewFlipper 循环?

    我将 ViewFlipper 设置为每 5 秒自动翻转一次 省略一些细节 它看起来像这样并且工作正常 ViewFlipper flipper ViewFlipper findViewById R id myflipperid flipper
  • 如何将字节数组转换为图像 [kotlin]

    我想将字节数组转换为图像并在图像视图中显示它 但不知道该怎么做 有人可以指导我吗 我使用这个函数将位图转换为字节数组 private fun BitmapToByteArray ByteArray val stream ByteArrayO
  • 安装后隐藏 Android 应用程序图标

    我看到谷歌应用程序中有一些GPS应用程序 安装后 该应用程序将没有图标显示 但会在后台运行服务 我将如何实现这一目标 要从启动器中删除应用程序 请不要将这些行与主要活动放在AndroidManifest xml
  • 两个具有相同 id 的视图

    安卓如何使用R id id name膨胀 XML 后查找视图 1 假设我有两个 XML 每个按钮都有相同的 id 2 我对它们进行了膨胀并将它们转换为视图 3 R id类中只有一个int将为这两个按钮创建 android 如何区分这些具有相
  • opengl 覆盖在相机视图上

    我仍然没有找到在相机预览顶部显示 opengl 叠加层的正确方法 有一个 hack 你可以调用 setContentView GLSurfaceView addContentView MyCameraSurfaceView 但它无法正常工作
  • HTC One M8 - 使用第二个后置摄像头

    我有一台 HTC One M8 设备 它有 2 个后置摄像头和一个额外的前置摄像头 我的问题是尝试访问第二个后置摄像头 我已经成功制作了一个应用程序 它同时运行 2 个摄像头 1 个前置摄像头和 1 个后置摄像头 但问题是我无法访问第二个后
  • 多次调用 startService 时实际会发生什么

    我正在打电话startService 多次对同一服务有不同的意图 很明显 任何时候都只存在一个服务实例startCommand 被称为每个startService 我的问题是 调用时有性能影响吗startService 多次 意图会按照调用
  • Android - 将值从 sqlite 数据库加载到数组列表

    我是安卓新手 我有一个使用 SQLite DB 的应用程序 我需要将值从数据库推送到对象类型的数组列表 我使用的代码在这里给出 private ArrayList
  • 如何在 EditText 中用逗号分隔数字

    我有一个 EditText 其 inputType 为number 当用户打字时 我想用逗号分隔数字 这是一个小例子 123 将表示为 123 1234 将表示为 1 234 12345 将表示为 12 345 等等 我尝试使用 TextW
  • android.media.Ringtone.play() 在播放 28 次后停止工作

    我有一个打开了几个小时的应用程序 并使用后台服务并附加了前台通知 每隔一段时间就会使用以下方式播放声音 try Ringtone r RingtoneManager getRingtone context uri r play catch
  • 如何使用支持FileProvider将内容分享给其他应用程序?

    我正在寻找一种使用 Android 支持库与外部应用程序正确共享 而不是打开 内部文件的方法文件提供者 http developer android com reference android support v4 content File
  • Android:在 Android M 中完全禁用 deviceidle(“Doze”)?

    在已 root 的 Android M 设备中 我想始终完全禁用设备空闲模式 Doze 是的 我知道这会影响我的电池寿命 这对我来说没问题 我知道我可以调用以下内容 dumpsys deviceidle disable 但是 我无法找到该子
  • Google Analytics 数据中出现未知的应用版本

    我有一个Android应用程序发布到Google Play商店 它的apk文件也被我不认识的人发布到一些中国商店 今天我注意到Google Analytics数据中一个非常奇怪的情况 我从未发布过1 6 3版本 但我注意到它在那里 有37个
  • 检查用户是否已经使用Auth.GoogleSignInApi登录?

    我发现为了登录用户 我必须使用以下代码 Intent signInIntent Auth GoogleSignInApi getSignInIntent mGoogleApiClient startActivityForResult sig
  • 如何像 youtube 一样在纸板中观看普通视频

    我有一个可以正常播放的应用程序VR视频 我的应用程序有两个玩家可以玩这两种类型 在我的VrVideoView有一个按钮可以让视频播放立体声模式 我的问题是 我怎样才能观看正常的视频Cardboard就像YouTube app None

随机推荐