didRangeBeaconsInRegion () вызывается несколько раз после перезапуска приложения Android - PullRequest
0 голосов
/ 29 декабря 2018

Я занимаюсь разработкой приложения для Android, которое сканирует около Beacons.Самый первый раз откройте Android-приложение и сканируйте около маяков и вызывайте метод didRangeBeaconsInRegion () каждые 2 секунды.

Но когда я закрываю приложение, затем снова запускается, затем метод didRangeBeaconsInRegion () вызывается 2 раза за 2 секунды

3-й раз метод didRangeBeaconsInRegion () вызывается 3 раза за 2 секунды

и т. Д. *

Фрагмент кода

@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

Обновление 2:

Здесь код для обратных вызовов

mBeaconManager.addRangeNotifier(this);

Вышеупомянутый обратный вызов вызывается только один раз для приложения формы, когда пользователь разрешает все необходимые разрешения для операции сканирования маяка

Проблема: В первый раз работает нормально, но проблема возникает во 2 раз,3-й раз ... перезагружается.Я записал выше журналы, когда приложение было перезапущено в третий раз.

Примечание: Это также работает нормально, когда я очищаю фон формы приложения.

1 Ответ

0 голосов
/ 18 января 2019
mBeaconManager.removeRangeNotifier(this);
...