OSGi 系列(三)之 bundle 事件监听

bundle 的事件监听是在 bundle 生命周期的不同状态相互转换时,OSGi 框架会发出各种不同的事件供事先注册好的事件监听器处理。

1. 事件监听器

事件名称 描述 事件值
INSTALLED Bundle 被成功安装 1
STARTED Bundle 被成功启动 2
STOPED Bundle 被成功停止 4
UPDATED Bundle 被成功更新 8
UNINSTALLED Bundle 被成功卸载 16
RESOLVED Bundle 被成功解析 32
UNRESOLVED Bundle 被转变为未解析状态 64
STARTING Bundle 正在启动 128
STOPPING Bundle 正在停止 256
LAZY_ACTIVATION Bundle 进入延迟启动状态 512

2. 案例

(1) 编写 bundle-listener-1.0.1.jar ,启动类 BundleActivator 如下:

public class HelloBundleActivator implements BundleActivator {
@Override
public void start(BundleContext context) throws Exception {
System.out.println("bundle start...");
context.addBundleListener(new BundleListener() {
@Override
public void bundleChanged(BundleEvent event) {
System.out.println(event.getBundle().getSymbolicName());
System.out.println(event.getType());
}
});
} @Override
public void stop(BundleContext context) throws Exception {
System.out.println("bundle stop...");
}
}

(2) 编写 osgi-bundle2-1.0.1.jar ,这是一个空的 bundle,什么与没有。

查看 osgi-bundle2 启动、停止、更新、卸载时的状态变化:

最新文章

  1. String源码中的"avoid getfield opcode"
  2. 推荐一个Android开发懒人库 -- ButterKnife
  3. PHP SQL注入的防范
  4. 01.WPF中制作无边框窗体
  5. Maven+Eclipse+Spring MVC简单实例
  6. redis来共享各个服务器的session,并同时通过redis来缓存一些常用的资源,加快用户获得请求资源的速度(转)
  7. BZOJ 1003 [ZJOI2006]物流运输trans SPFA+DP
  8. js点击图片查看大图,并可以拖动,且滚动滑轮放大缩小
  9. JPA-04
  10. CMake系列之二:入门案例-单个源文件
  11. 核心一:DI
  12. MetaMask/Website
  13. 通过adb命令在Android设备中执行Java命令, 并调用so文件。
  14. git拉取远程分支
  15. Kali linux 试用:dnsenum
  16. MyBatis各种类型的入参使用方式
  17. 使用docusaurus 搭建开发&&api && 博客站点
  18. LINUX 实现端口转发 - 安装使用rinetd
  19. Spring源码分析(十一)bean的加载
  20. python 发送邮件(收到的邮件要有发送方才能回复)

热门文章

  1. Python日志配置类
  2. sqlalchemy--表关系
  3. zabbix监控系统日志
  4. leetcode202
  5. VBA 编写类
  6. CAAnimation临时取消动画,永久取消动画
  7. centos多版本python安装pip
  8. c++中虚函数
  9. 树莓派Zero W GPIO控制
  10. Windows10系统一键结束所有运行程序