为什么不在活动中使用“newInstance”模式?

kke*_*per 6 android android-intent android-activity

这似乎是一种简化如何为片段设置参数的好方法,所以我很好奇为什么通常不描述它来创建用于启动活动的显式意图?

Com*_*are 4

创建一个方法来构建启动活动,甚至拥有启动活动的方法,都没有什么问题。您还可以采用一种模式,在该模式中,您公开一个构建器样式的 API ,该 API 会生成 , 用于简单方法无法工作的场景。例如,我在CWAC-Cam2 库中采用了这种方法。staticIntentstaticIntentBuilderIntent

Google 尚未推广该模式,但如果您从 Android Studio 向导 IIRC 生成服务,您将会看到此类代码。然而,Google 并不是真正致力于展示所有可能的编程模式。

据我所知,最大的限制是没有执行机制。虽然您可以提供此类设施,但没有什么可以阻止开发人员绕过或忽略它们。IOW,经典的 create-an--and Intent-go API 是“公共”的,你无法以某种方式将其设为私有。因此,您的活动需要假设最坏的情况,并制定您认为合适的防御计划。