我正在开发一个与 Beacon 一起使用的 Android 应用程序(感谢使用 Android Beacon Library)。我有一个扩展 BootstrapNotifier 的应用程序,它调用一个创建新 RegionBootstrap 的控制器(我的类)方法。当应用程序启动时一切正常,并且与相应区域相关的信标在进入或离开该特定区域时触发通知。
public class BackgroundApplication extends Application implements BootstrapNotifier, RangeNotifier {
...
@Override
public void onCreate() {
this.controller = Controller.getInstance();
mAllBeaconsRegion = new Region("all beacons", null, null, null);
//the following call returns the correct list of regions
this.regionList = this.controller.getRegionList(this);
this.regionList.add(mAllBeaconsRegion);
this.controller.setBootstrapNotifier(this);
this.controller.setRegionBootstrap(this.regionList);
...
}
这是控制器:
public class Controller {
...
public void setRegionBootstrap(ArrayList<Region> regionList){
this.regionBootstrap = new RegionBootstrap(this.bootstrapNotifier, regionList);
}
public void setBootstrapNotifier (BootstrapNotifier bn){
this.bootstrapNotifier = bn;
}
}
现在,我提供了添加区域的可能性,并且我想立即检测信标何时进入或离开该区域。为此,我认为我必须简单地重新调用该 setRegionBootstrap 方法,并传递新的区域列表。相反,除非我重新启动应用程序,否则我没有进入或离开新区域的通知。知道如何解决这个问题吗?谢谢。