前提是我正在编写一个本身使用和实现IBeacon SDK的库。 我的代码必须实现该SDK,做一些事情,如果有人使用我的库,他们根本不需要与这个SDK交互,所以我可以说你可以说更高级别的代码库。
现在我的代码本身不能使用任何活动,它只是一个库,另一个用户将实现我的代码。因此,我的代码需要使用IBeacon事件并使用它做一些事情而不是自己的活动。
所以我会自己实现IBeaconConsumer然后使用我的库的人只会给我一个活动/上下文,我会把它传递给IBeacon SDK。
这样做会导致以下问题(使用正确的主要代码):
活动绑定其iBeaconManager对象但是onIBeaconServiceConnect永远不会被调用。 请参阅此stackoverflow问题:Android IBeaconManager not connecting from activity
我的模糊假设是这样的:实现IBeaconConsumer的类不是一个活动,它与我绑定IBeacon服务的类不同,可能会产生问题。 它只是非常难以调试,因为它一切正常,没有错误,只是没有ibeacon活动 - 同样的行为就好像你忘记在清单中添加部分一样
答案 0 :(得分:1)
如果您希望IBeaconConsumer
实施不是Activity
或Service
的实例,那么您只需要链接bindService
和unbindService
有效ApplicationContext
实例的方法,并从getApplicationContext
方法返回该有效实例。当您使用Activity
实现此接口时,不需要这样做,因为Activity
为您实现了这三种方法。