【问题标题】:Max regions for status preservation状态保存的最大区域
【发布时间】:2019-09-27 13:08:37
【问题描述】:

我想知道为什么状态保留限制为 50 个区域?

    private static final int MAX_REGIONS_FOR_STATUS_PRESERVATION = 50;

使用RegionBootstrap 实现监控多个区域(如 500 个)有什么影响?

谢谢

【问题讨论】:

    标签: ibeacon-android


    【解决方案1】:

    库必须在每次应用启动时从磁盘序列化和序列化区域。这对少数地区来说是一个快速的过程,但随着更多地区的发展而减慢。在极端数量(如 500)下,序列化和反序列化可能需要几秒钟并触发应用程序无响应 (ANR) 对话框。这就是 50 的理智限制到位的原因。

    除了上述限制之外,监控如此多的区域会消耗更多的 CPU 和电池,因为库必须将每个区域与检测到的每个信标进行比较,以查看它们是否匹配。如果可能,将应用程序设计为使用更少的区域会更有效。如果您绝对必须使用这么多,请务必测试电池消耗。

    【讨论】:

    • 好吧,其实我不一定需要这么多。但是我需要确定哪个信标发送信号,并且我需要获取他的主要和次要值(在后台)。由于我无法使用引导方式检索主要和次要(对吗?),因此我的想法是观察所有可能的方案。当我检测到信标时,我还尝试更改引导程序的区域,因为我可以将一些信标组合在一起(这样可以减少要观察的区域数量)。但是当设备进入打盹模式(或睡眠 >15 分钟?)时,作业被推迟,我无法捕捉到第二个信标,因为用户将超出范围。
    猜你喜欢
    • 1970-01-01
    • 2021-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-30
    • 2012-10-08
    • 1970-01-01
    相关资源
    最近更新 更多