重启后多次调用 didRangeBeaconsInRegion() Android 应用程序
didRangeBeaconsInRegion() call multiple times after restarts Android app
我正在开发 Android 可在信标附近进行扫描的应用程序。
第一次打开 Android 应用程序并扫描附近的信标并每 2 秒调用一次 didRangeBeaconsInRegion() 方法。
但是当我关闭应用程序然后再次启动时 didRangeBeaconsInRegion() 方法在 2 秒内调用了 2 次
第 3 次 didRangeBeaconsInRegion() 方法在 2 秒内调用了 3 次
等等....
代码片段
@Override
public void didRangeBeaconsInRegion(final Collection<Beacon> beacons, final Region region) {
if (beacons != null) {
Log.i("iBeacons", "beacons.size() : " + beacons.size());
}
}
日志:
2018-12-29 21:39:40.328 26528-27120/com.test.demo I/iBeacons: beacons.size() : 0
2018-12-29 21:39:40.328 26528-27120/com.test.demo I/iBeacons: beacons.size() : 0
2018-12-29 21:39:40.328 26528-27120/com.test.demo I/iBeacons: beacons.size() : 0
2018-12-29 21:39:42.259 26528-27124/com.test.demo I/iBeacons: beacons.size() : 1
2018-12-29 21:39:42.260 26528-27124/com.test.demo I/iBeacons: beacons.size() : 1
2018-12-29 21:39:42.260 26528-27124/com.test.demo I/iBeacons: beacons.size() : 1
2018-12-29 21:39:44.229 26528-27132/com.test.demo I/iBeacons: beacons.size() : 1
2018-12-29 21:39:44.229 26528-27132/com.test.demo I/iBeacons: beacons.size() : 1
2018-12-29 21:39:44.229 26528-27132/com.test.demo I/iBeacons: beacons.size() : 1
2018-12-29 21:39:46.241 26528-27136/com.test.demo I/iBeacons: beacons.size() : 1
2018-12-29 21:39:46.241 26528-27136/com.test.demo I/iBeacons: beacons.size() : 1
2018-12-29 21:39:46.241 26528-27136/com.test.demo I/iBeacons: beacons.size() : 1
2018-12-29 21:39:48.251 26528-27138/com.test.demo I/iBeacons: beacons.size() : 1
2018-12-29 21:39:48.251 26528-27138/com.test.demo I/iBeacons: beacons.size() : 1
2018-12-29 21:39:48.251 26528-27138/com.test.demo I/iBeacons: beacons.size() : 1
2018-12-29 21:39:50.249 26528-27139/com.test.demo I/iBeacons: beacons.size() : 0
2018-12-29 21:39:50.249 26528-27139/com.test.demo I/iBeacons: beacons.size() : 0
2018-12-29 21:39:50.249 26528-27139/com.test.demo I/iBeacons: beacons.size() : 0
2018-12-29 21:39:52.241 26528-27141/com.test.demo I/iBeacons: beacons.size() : 0
2018-12-29 21:39:52.241 26528-27141/com.test.demo I/iBeacons: beacons.size() : 0
2018-12-29 21:39:52.241 26528-27141/com.test.demo I/iBeacons: beacons.size() : 0
更新二:
这里是回调代码
mBeaconManager.addRangeNotifier(this);
一旦用户允许信标扫描操作的所有必要权限,上述回调只会在应用程序中调用一次
问题: 第一次运行正常,但第二次、第三次出现问题,...重新启动。
我在应用程序第 3 次重新启动时捕获了上面的日志。
注意:清空申请表背景也正常
mBeaconManager.removeRangeNotifier(this);
我正在开发 Android 可在信标附近进行扫描的应用程序。 第一次打开 Android 应用程序并扫描附近的信标并每 2 秒调用一次 didRangeBeaconsInRegion() 方法。
但是当我关闭应用程序然后再次启动时 didRangeBeaconsInRegion() 方法在 2 秒内调用了 2 次
第 3 次 didRangeBeaconsInRegion() 方法在 2 秒内调用了 3 次
等等....
代码片段
@Override
public void didRangeBeaconsInRegion(final Collection<Beacon> beacons, final Region region) {
if (beacons != null) {
Log.i("iBeacons", "beacons.size() : " + beacons.size());
}
}
日志:
2018-12-29 21:39:40.328 26528-27120/com.test.demo I/iBeacons: beacons.size() : 0
2018-12-29 21:39:40.328 26528-27120/com.test.demo I/iBeacons: beacons.size() : 0
2018-12-29 21:39:40.328 26528-27120/com.test.demo I/iBeacons: beacons.size() : 0
2018-12-29 21:39:42.259 26528-27124/com.test.demo I/iBeacons: beacons.size() : 1
2018-12-29 21:39:42.260 26528-27124/com.test.demo I/iBeacons: beacons.size() : 1
2018-12-29 21:39:42.260 26528-27124/com.test.demo I/iBeacons: beacons.size() : 1
2018-12-29 21:39:44.229 26528-27132/com.test.demo I/iBeacons: beacons.size() : 1
2018-12-29 21:39:44.229 26528-27132/com.test.demo I/iBeacons: beacons.size() : 1
2018-12-29 21:39:44.229 26528-27132/com.test.demo I/iBeacons: beacons.size() : 1
2018-12-29 21:39:46.241 26528-27136/com.test.demo I/iBeacons: beacons.size() : 1
2018-12-29 21:39:46.241 26528-27136/com.test.demo I/iBeacons: beacons.size() : 1
2018-12-29 21:39:46.241 26528-27136/com.test.demo I/iBeacons: beacons.size() : 1
2018-12-29 21:39:48.251 26528-27138/com.test.demo I/iBeacons: beacons.size() : 1
2018-12-29 21:39:48.251 26528-27138/com.test.demo I/iBeacons: beacons.size() : 1
2018-12-29 21:39:48.251 26528-27138/com.test.demo I/iBeacons: beacons.size() : 1
2018-12-29 21:39:50.249 26528-27139/com.test.demo I/iBeacons: beacons.size() : 0
2018-12-29 21:39:50.249 26528-27139/com.test.demo I/iBeacons: beacons.size() : 0
2018-12-29 21:39:50.249 26528-27139/com.test.demo I/iBeacons: beacons.size() : 0
2018-12-29 21:39:52.241 26528-27141/com.test.demo I/iBeacons: beacons.size() : 0
2018-12-29 21:39:52.241 26528-27141/com.test.demo I/iBeacons: beacons.size() : 0
2018-12-29 21:39:52.241 26528-27141/com.test.demo I/iBeacons: beacons.size() : 0
更新二:
这里是回调代码
mBeaconManager.addRangeNotifier(this);
一旦用户允许信标扫描操作的所有必要权限,上述回调只会在应用程序中调用一次
问题: 第一次运行正常,但第二次、第三次出现问题,...重新启动。 我在应用程序第 3 次重新启动时捕获了上面的日志。
注意:清空申请表背景也正常
mBeaconManager.removeRangeNotifier(this);