Android 中 AltBeacon 的 ANR 问题

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

我目前正在使用 AltBeacon 库进行信标检测。但是,我在我的应用程序中遇到了 ANR 问题。经过一番调查,我发现BeaconService的方法是在主线程上执行的。关于这个问题我有几个疑问:

BeaconService 的方法需要在主线程上运行,这是 AltBeacon 库的技术限制吗?

在使用 AltBeacon 库时是否有任何推荐的策略或解决方法来避免 ANR 问题?

有什么方法可以卸载或优化信标检测期间发生的繁重处理,以防止 UI 线程争用?

我将非常感谢任何关于如何解决此问题并提高我的应用程序性能的见解或指导。预先感谢您的帮助!

其他背景:

我在 Android 应用程序中使用 AltBeacon 库版本 1.19.4。 我尝试在不同的线程中实例化该库,但仍然可以看到确认扫描发生在主线程上的注释。 ANR 并不多,但它们仍然存在,我想看看遵循正确的指导方针我能做得更好。

注意:如果您需要任何其他信息或代码示例来帮助解决此问题,请告诉我。

android beacon altbeacon
1个回答
0
投票

如果您使用 Kotlin,将工作卸载到后台线程的最佳方法是使用协程。如果您仍在使用 Java,您可能只使用 Executors 或 官方文档推荐的任何库

现在,没有任何代码很难帮助您解决问题。我自己从未使用过这样的库,但我已经实现了 Android SDK 的包装器。

通常您想要做的是在后台运行扫描方法

OnClick
处理程序应使用您选择的任何方式来分派后台任务并执行此操作

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