Nexus 5、BootstrapNotifier 和后台模式

Nexus 5, BootstrapNotifier and background mode

我正在开发一个使用 AltBeacon 库的应用程序。到目前为止,一切都很好,但现在我遇到了后台模式的问题。

所以当我退出我的应用程序时,我调用 mBeaconManager.setBackgroundMode(true);。 2 例:
- 我附近至少有 1 个信标:方法 didEnterRegion 已成功启动,一切正常
- 如果我在附近没有信标的情况下等待超过 1 小时(1 小时 30 分或将近),那么有一个:didEnterRegion 不再被触发。我红色文档所以我知道它不会很快,但即使在 15 分钟后,也没有任何反应。

在另一台设备 (Nexus 4...) 上,这两种情况都有效。即使在 2 小时后,应用程序被杀死......等等,dienterRegion 仍然被解雇。

到目前为止,Nexus 5 在 Android 5.1.1 上运行,Nexus 4 也在 Android 5.1.1 上运行。似乎仅适用于 Nexus 5...

有什么想法吗?

非常感谢

Nexus 5 上的操作系统可能由于内存不足或其他情况而在后台终止您的应用程序。您可以通过修改代码设置来判断是否发生这种情况:

beaconManager.setDebug(true);

然后在后台查看 LogCat。如果应用程序仍然是 运行(并等待信标检测),您应该会看到如下行:

Waiting to start full Bluetooth scan for another XXXX milliseconds

如果您没有看到像上面这样的行,那么这可能表示该应用程序已被 OS 杀死。如果这确实发生了什么,在这些条件下重新启动应用程序的修复程序已放入可用库的 2.3-beta4 版本 here。它在 JCenter/Maven 中尚不可用,但将在 2.3 版本结束测试版时提供。

一个澄清:如果你有Android 5.x,背景检测应该非常快。如果一切正常,您将在打开信标后 5 秒内收到来自图书馆的回调。