缓存/重用 RxBleDevice 实例是否存在问题?
Are there issues with caching / reusing a RxBleDevice instance?
RxBleClient#scanBleDevices
发出一系列 ScanResult
对象。反过来,ScanResult#getBleDevice
提供来自这些发出的项目之一的 RxBleDevice
实例。
缓存 RxBleDevice
实例以避免必须执行未来扫描是否有任何问题?
几个潜在用例:
- 在需要实际连接到设备之前执行扫描。
- 针对不相关的操作执行常规扫描,因此利用此扫描期间发出的任何其他设备会很有效。
至少有两个选项:
- 您可以自己缓存
RxBleDevice
个实例,只要您保留客户端实例即可。它在内部保留了一些对象的引用,这些对象的范围在客户端的生命周期内。
- 您可以使用
RxBleClient#getBleDevice
传递 MAC 地址。 RxBleDevice
实例在客户端缓存,您不应期望在创建设备时出现性能问题。
RxBleClient#scanBleDevices
发出一系列 ScanResult
对象。反过来,ScanResult#getBleDevice
提供来自这些发出的项目之一的 RxBleDevice
实例。
缓存 RxBleDevice
实例以避免必须执行未来扫描是否有任何问题?
几个潜在用例:
- 在需要实际连接到设备之前执行扫描。
- 针对不相关的操作执行常规扫描,因此利用此扫描期间发出的任何其他设备会很有效。
至少有两个选项:
- 您可以自己缓存
RxBleDevice
个实例,只要您保留客户端实例即可。它在内部保留了一些对象的引用,这些对象的范围在客户端的生命周期内。 - 您可以使用
RxBleClient#getBleDevice
传递 MAC 地址。RxBleDevice
实例在客户端缓存,您不应期望在创建设备时出现性能问题。