Android 启动活动时强制执行意图内容

Android 启动活动时强制执行意图内容,android,android-intent,Android,Android Intent,我有2个活动-A和B。活动B通过活动A启动,但它需要一段信息(A字符串)才能启动。现在我正在使用Intent类的putExtra和getExtras方法来传递数据。我可以以任何方式强制要求用于启动活动B的意图始终使用特定键存储字符串吗?您不能强制要求,但是: 您可以在活动B上创建负责启动活动B实例的静态方法,并让该方法接受您的字符串参数。该方法将负责构建意图,放入额外内容,并调用startActivity()。只要代码的其余部分使用此方法,您将始终拥有额外的资源 您始终可以验证额外的存在于on

我有2个
活动
-A和B。活动B通过活动A启动,但它需要一段信息(A
字符串
)才能启动。现在我正在使用
Intent
类的
putExtra
getExtras
方法来传递数据。我可以以任何方式强制要求用于启动活动B的意图始终使用特定键存储
字符串吗?

您不能强制要求,但是:

  • 您可以在活动B上创建负责启动活动B实例的
    静态
    方法,并让该方法接受您的
    字符串
    参数。该方法将负责构建
    意图
    ,放入额外内容,并调用
    startActivity()
    。只要代码的其余部分使用此方法,您将始终拥有额外的资源

  • 您始终可以验证额外的存在于
    onCreate()
    /
    onNewIntent()


但是你无法教Android自动拒绝缺少额外内容的
意图。

我无法将活动的构造函数设置为私有,因为如果我尝试启动它,会导致Android框架抛出错误!!因此,使用“静态方法”模式仍然会留下一种启动活动的方式,而不需要额外的东西!!因此,我决定在
onCreate
中验证附加项,如果没有预期的键,则抛出一个错误。谢谢你的邀请suggestions@x-treme:“我不能将活动的构造函数设置为私有的,因为如果我尝试启动它,会导致android框架抛出错误”——这就是为什么我没有建议这样做。因此,使用“static method”模式仍然会留下一种启动活动的方式,而不需要额外的东西”--正确。但是,它使遵守要求变得更容易。