这似乎是一种简化如何为片段设置参数的好方法,所以我很好奇为什么它不常用于创建用于启动活动的显式意图?
答案 0 :(得分:2)
错误没有创建static
方法来构建Intent
来启动活动,甚至没有static
方法来启动活动。您还可以使用IntentBuilder
模式,在这种模式下,您可以展示生成Intent
的构建器样式的API,以用于简单方法不可行的情况。例如,我在my CWAC-Cam2 library中采用了这种方法。
谷歌尚未宣传该模式,但如果您从Android Studio向导IIRC生成服务,您将看到此类代码。然而,谷歌并没有真正尝试展示所有可能的编程模式。
我所知道的最大限制是没有强制机制。虽然您可以提供这些类型的设施,但没有什么可以阻止开发人员绕过或忽略它们。 IOW,经典的create-an - Intent
- and-go API是“公开的”,你不能以某种方式将它变成私有的。所以,你的活动需要承担最坏的情况,并拥有你觉得合适的防御性编程。
答案 1 :(得分:1)
我认为这只是因为你可以有很多片段,但你可能只有一些活动。
此外,您更有可能将args传递给片段,而不是通过活动传递。
答案 2 :(得分:0)
那是因为您可以使用new
内的newinstance
运算符创建片段,而活动不是这样,活动只能started
使用代码中的意图。虽然创建是由OS处理的。您永远不会调用new
来创建与片段不同的新活动。