我在让片段按我的意图工作时遇到了一些困难。它向我提出了一个问题,网络上的各种文章都没有回答。
首先,我对片段的理解是,它很像 OSGi Bundle,只是它不会自行激活。相反,它由另一个包托管。这样,它可以被认为是对现有捆绑包的扩展。
以上如有错误,请高人指正。
现在的主要问题与经常与片段文章一起使用的 Manifest 属性有关,特别是 Fragment-Host 属性。Fragment-Host 属性通常声明一个符号包名称,但不清楚的是:
- 如果包含 Fragment-Host 的清单属性是现有捆绑包的一部分,则声明在另一个模块中定义的片段(即:托管捆绑包声明它将托管的片段)-或-
- 如果包含 Fragment-Host 的清单属性是声明片段的模块的一部分,其值定义了托管捆绑包(即:片段声明托管它的捆绑包)这是我相信的,因为“片段主机”听起来像是声明将托管片段的内容。
这似乎是一个基本问题,但并没有得到真正的回答,而且如果没有一个可行的例子,我就会质疑它应该采用哪种方式。大多数指定需要片段并且“这些是清单应该看起来像”的人并没有声明这种可以极大地澄清问题的简单信息。