如何优化 .NET MAUI 应用程序中的定期蓝牙扫描以防止延迟?

问题描述 投票:0回答:1

我正在开发一个适用于 Android 的 .NET MAUI 应用程序,该应用程序使用特定于平台的代码连续扫描蓝牙经典和 BLE 设备。该应用程序从扫描过程中收集数据并将其存储在本地 SQLite 数据库中。但是,运行几个小时 (1 - 2) 后,应用程序开始出现滞后。另外,我注意到,当应用程序在定期暂停期间不进行扫描时,它仍然保持完全响应。有趣的是,当我停止扫描时,延迟消失了。

为了解决这个问题,我从连续扫描切换到定期扫描模式,其中应用程序扫描特定的持续时间,然后在下一个扫描周期之前暂停。这应该有助于提高应用程序的响应能力并防止任何滞后问题。

我怀疑连续和周期性的扫描过程会让移动设备不堪重负。我应该考虑哪些最佳实践和优化来防止出现这种滞后问题?我想确保应用程序可以连续运行而不会降低性能。

以下是我的实施的一些细节:

  • 我正在 Android 中使用特定于平台的代码进行蓝牙扫描。
  • 数据存储在 SQLite 本地数据库中。
  • 我正在扫描经典蓝牙和 BLE 设备。
  • 连续扫描几个小时后,延迟问题变得明显。

我愿意接受任何有助于提高应用程序在连续蓝牙扫描过程中的性能和稳定性的见解或建议。

感谢您的协助!

android .net bluetooth-lowenergy maui android-bluetooth
1个回答
0
投票

您是否在平台特定实现中使用后台服务? 例如 Android 的

AndroidService

如果没有,您的 UI 线程上运行的代码可能会导致此问题。
如果需要,您可以使用
WeakReferenceMessenger
从后台服务与 UI 线程进行通信。

© www.soinside.com 2019 - 2024. All rights reserved.