在SCR运行时中首先调用哪一个激活函数或绑定函数

时间:2013-04-03 08:49:50

标签: osgi equinox apache-felix knopflerfish

我对组件变为活动时调用哪个函数Activate函数或绑定函数的顺序感到困惑。在我看来,首先会调用activate函数函数,因为Bind函数用于绑定服务。但是,正如我们所知,所有目标服务首先进入组件上下文,然后组件被激活。

请清除我的怀疑。

1 个答案:

答案 0 :(得分:8)

在绑定了所有静态引用之后,即在调用绑定方法之后,将调用activate方法。因此,在激活期间,您可以确保静态引用的值不会更改。

但是对于动态参考,所有投注均已关闭。实际上,动态引用的值可能在不同的线程中多次改变,在执行activate方法期间

更新:您没有询问有关停用的信息,但您可能会发现这些信息非常有用。在任何静态引用未绑定之前,deactivate方法将被称为。例如:如果你绑定了一个带有静态引用的服务,并且你必然要服务的服务消失,那么SCR将首先调用你的去激活,然后调用你的unbind方法,最后它将释放组件实例垃圾收集。