SystemUI QSFactory插件解析

系统有默认的插件为 QSFactoryImpl,

QSTileHost 注册监听插件

pluginManager.addPluginListener(this, QSFactory.class, true);

在 QSTileHost 中把 默认插件和系统发现的插件都放入 mQsFactories,
然后有以下代码:

    public QSTile createTile(String tileSpec) {
        for (int i = 0; i < mQsFactories.size(); i++) {
            QSTile t = mQsFactories.get(i).createTile(tileSpec);
            if (t != null) {
                return t;
            }
        }
        return null;
    }
public QSTileView createTileView(QSTile tile, boolean collapsedView) {
    for (int i = 0; i < mQsFactories.size(); i++) {
        QSTileView view = mQsFactories.get(i).createTileView(tile, collapsedView);
        if (view != null) {
            return view;
        }
    }
    throw new RuntimeException("Default factory didn't create view for " + tile.getTileSpec());
}

相关推荐

  1. SystemUI QSFactory

    2024-04-21 15:48:02       33 阅读
  2. Chrome 浏览器 runtime 字段

    2024-04-21 15:48:02       50 阅读
  3. vue的

    2024-04-21 15:48:02       60 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-21 15:48:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-21 15:48:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-21 15:48:02       82 阅读
  4. Python语言-面向对象

    2024-04-21 15:48:02       91 阅读

热门阅读

  1. 部署分布式LNMP系统

    2024-04-21 15:48:02       31 阅读
  2. C#面:如何自定义委托

    2024-04-21 15:48:02       31 阅读
  3. Qt中 connect的第五个参数

    2024-04-21 15:48:02       30 阅读
  4. Shebang是在 Unix-like 系统中的一种特殊注释

    2024-04-21 15:48:02       32 阅读
  5. array_diff() 与 array_intersect() 的作用

    2024-04-21 15:48:02       36 阅读
  6. XiaodiSec day033 Learn Note 小迪渗透学习笔记

    2024-04-21 15:48:02       33 阅读
  7. Ubuntu搭建Python虚拟环境:virtualenv

    2024-04-21 15:48:02       36 阅读
  8. 前端实用插件-日期处理工具Moment.js

    2024-04-21 15:48:02       30 阅读
  9. Python机器学习项目开发实战:如何进行语音识别

    2024-04-21 15:48:02       36 阅读
  10. c++ 去掉小数位后面的零

    2024-04-21 15:48:02       33 阅读