Android 启动活动时强制执行意图内容
我有2个Android 启动活动时强制执行意图内容,android,android-intent,Android,Android Intent,我有2个活动-A和B。活动B通过活动A启动,但它需要一段信息(A字符串)才能启动。现在我正在使用Intent类的putExtra和getExtras方法来传递数据。我可以以任何方式强制要求用于启动活动B的意图始终使用特定键存储字符串吗?您不能强制要求,但是: 您可以在活动B上创建负责启动活动B实例的静态方法,并让该方法接受您的字符串参数。该方法将负责构建意图,放入额外内容,并调用startActivity()。只要代码的其余部分使用此方法,您将始终拥有额外的资源 您始终可以验证额外的存在于on
活动
-A和B。活动B通过活动A启动,但它需要一段信息(A字符串
)才能启动。现在我正在使用Intent
类的putExtra
和getExtras
方法来传递数据。我可以以任何方式强制要求用于启动活动B的意图始终使用特定键存储字符串吗?您不能强制要求,但是:
- 您可以在活动B上创建负责启动活动B实例的
静态
方法,并让该方法接受您的字符串
参数。该方法将负责构建意图
,放入额外内容,并调用startActivity()
。只要代码的其余部分使用此方法,您将始终拥有额外的资源
- 您始终可以验证额外的存在于
onCreate()
/onNewIntent()
中
但是你无法教Android自动拒绝缺少额外内容的意图。我无法将活动的构造函数设置为私有,因为如果我尝试启动它,会导致Android框架抛出错误!!因此,使用“静态方法”模式仍然会留下一种启动活动的方式,而不需要额外的东西!!因此,我决定在onCreate
中验证附加项,如果没有预期的键,则抛出一个错误。谢谢你的邀请suggestions@x-treme:“我不能将活动的构造函数设置为私有的,因为如果我尝试启动它,会导致android框架抛出错误”——这就是为什么我没有建议这样做。因此,使用“static method”模式仍然会留下一种启动活动的方式,而不需要额外的东西”--正确。但是,它使遵守要求变得更容易。