2016-08-15 7 views
3

Я использую библиотеку alt.beacon и теперь я получаю это предупреждение:setRangeNotifier (RangeNotifier) ​​устарел?

warning: [deprecation] setRangeNotifier(RangeNotifier) in BeaconManager has been deprecated. 

Но что замена? Мне нужно установить маяки из региона и callback RangeNotifier, что важно для реализации этой функции.

public interface RangeNotifier { 
    void didRangeBeaconsInRegion(Collection<Beacon> var1, Region var2); 
} 

У кого-нибудь есть образец того, как должна работать новая библиотека?

thx!

ответ

4

Начиная с версии 2.9, у вас может быть более одного RangeNotifier. Таким образом, вместо вызова:

beaconManager.setRangeNotifier(rangeNotifier); 

Просто позвоните:

beaconManager.addRangeNotifier(rangeNotifier); 
+0

Может быть, стоит отметить, называть beaconManager.removeAllRangeNotifiers(); , прежде чем добавлять его снова, хотя это, вероятно, здравый смысл. Я устанавливаю уведомитель диапазона из фрагмента, и это может быть добавлено к любой активности, которая должна контролировать маяки. Без очистки уведомлений диапазона вы получаете результат диапазона для каждого добавленного вами параметра RangeNotifier, который может составлять много при навигации по приложению – WallyHale

+0

. Хорошей новостью является то, что это не обязательно. Коллекция rangeNotifiers определяется как Set: 'protected final Set rangeNotifiers = new CopyOnWriteArraySet <>();' поэтому, если вы добавляете один и тот же уведомитель несколько раз, он должен просто заменить тот, который уже существует. – davidgyoung

+0

Хмммммм .. это не похоже на меня. Тот же фрагмент добавляет себя к различным видам деятельности. И я обнаружил, что переход из меню (с обнаружением маяка) в действие (с обнаружением маяка), а обратно - 5 раз, это приведет к 5 срабатываниям три раза каждую секунду! Тот же самый уведомитель используется, поскольку код не изменяется, единственная разница может быть ссылкой getActivity, когда я показываю маяк в пользовательском интерфейсе? Изменит ли это уведомитель и сделает его уникальным? – WallyHale