Intent.putExtra(String,Bundle)vs Intent.putExtra(Bundle)

Alf*_*mes 8 java eclipse android android-intent

这个问题可能听起来很愚蠢,但我知道什么时候把活动名称放进去Intent.putExtra()?在一种情况下,我们只使用bundle进行额外的操作,而在其他情况下,我们使用类名传递它.如果我们使用Intent.putExtra(String, Bundle)已经在Intent构造函数中传递了活动名称,我有点困惑吗?

谢谢你的帮助!

hel*_*ios 15

我认为你的意思是putExtra(String, Bundle)vs putExtras(Bundle)(与s).

第一个添加捆绑包作为您提供的密钥的值.捆绑包是简单的对象值.

第二个将所提供的包中的所有键/值对添加到intent.在这种情况下,捆绑包的内容将添加到intent中,而不是捆绑包本身.

将它们视为Map界面:

Map.put(String key, Object value)
Run Code Online (Sandbox Code Playgroud)

VS

Map.putAll(Map anotherMap)
Run Code Online (Sandbox Code Playgroud)


Tob*_*sen 5

方法只是这里的区别。如果您使用 a Bundle,则可以在其中存储几乎所有类型:

Bundle mBundle = new Bundle();
mBundle.put(key, value);
Run Code Online (Sandbox Code Playgroud)

并将其传递给活动

mIntent.putExtras(mBundle);
Run Code Online (Sandbox Code Playgroud)

在另一个接收信息的活动中,只需像这样获取包的内容:

   Bundle extras = getIntent().getExtras();
Run Code Online (Sandbox Code Playgroud)

bundle像这样抓取每个元素:

extras.getString("myKey")
Run Code Online (Sandbox Code Playgroud)