android - location.getLocation() 在真正的 android 设备上花费的时间太长。扑
问题描述
我在尝试location.getLocation()
在真实设备上使用用户位置时遇到问题,现在它在模拟器上完美运行并且速度超快,但在真实设备上速度很慢,我不知道为什么会这样。
插件版本是^3.0.2
.
任何人都知道这里发生了什么。
解决方案
我有同样的问题,但我注意到了一些事情。
观察 1
位置已关闭,现在我单击按钮获取位置。它要求我打开位置,我打开它,await location.getLocation();
执行永远不会到达下一行代码。
观察 2 位置已打开,现在我单击按钮获取位置。它不会要求打开位置,因为它已经打开了,猜猜看,它会在 3-4 秒内获取用户位置
如何处理观察 1?
解决方案
_locationData = await Future.any([
location.getLocation(),
Future.delayed(Duration(seconds: 5), () => null),
]);
if (_locationData == null) {
_locationData = await location.getLocation();
}
解释
我基本上保持了 5 秒的超时,如果我在 5 秒内没有得到位置,我将它丢弃返回null
然后我再次点击它!& 有效
我在几个应用程序中观察到了这个问题。只是getLocation()
如果位置已经打开,该功能就可以正常工作。理想情况下,这不应该发生,插件或设备硬件肯定存在一些深层问题,没有时间详细说明。
希望对兄弟有帮助,加油!
PS:这个答案https://stackoverflow.com/a/66108572/7475099帮助我形成了上述解决方案。
推荐阅读
- webpack - 如何使用 html-webpack-plugin 从 .pug 模板加载资产
- apache-spark - Spark 流不从 Kinesis 读取数据
- python - 在 Python 中从数据框中提取字符串
- excel - 验证文本框条目中的日期格式
- python - 通过 Python 代码登录 SAP GUI 时如何检查错误
- selenium-webdriver - selenium webdriver 在抛出 NoSuchElementException 之前的默认等待时间是多少
- java - OpenJdk 初始启动时间很慢
- java - 如何使用@Path 设置休息网址(获取查看文件的链接)
- javascript - 在 setState() 之后,更新的状态不会作为道具传递给组件
- python - python中的循环没有正确递增