gpt4 book ai didi

java - OSGi 将 bundle 监听器添加到已安装的 bundle 中

转载 作者:行者123 更新时间:2023-12-01 23:00:20 25 4
gpt4 key购买 nike

我已经安装了一个 bundle 。现在我想向其添加监听器(稍后启动)以查找何时处于 Activity 状态。我发现的唯一方法是

bundle.getBundleContext().addBundleListener(new ...);

但是 getBundleContext() 仅当 bundle 处于启动、停止、 Activity 状态时才有效。那么我可以这样做吗?

最佳答案

注册 BundleListener 来捕获同一包中发生的事件是没有意义的。当您实现 BundleListener/BundleTracker 时,您通常希望捕获具有特殊属性的包的事件。

使用 BundleListener,您可以捕获框架中发生的事件。使用 BundleTracker,您首先捕获框架中每个包发生的最后事件,然后再捕获新事件。通常,最好使用 BundleTracker,因为您想要获取具有已激活的特殊属性的 bundle 。

BundleListener/BundleTracker 应该在实现监听器/跟踪器的包的 BundleContext 的帮助下使用。由于代码在“启动”之前不应在您的包中运行,因此当您想要注册监听器/跟踪器时,BundleContext 应始终可用。

更多地了解您想要实现的用例将会很有用。也许您甚至根本不需要实现 BundleListener/BundleTracker,只需重新设计一下包中的代码即可。

关于java - OSGi 将 bundle 监听器添加到已安装的 bundle 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23457091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com