如何从具有特定意图的其他活动开始活动 - 来自OnNewIntent

时间:2012-01-21 23:19:08

标签: android-activity android-intent nfc

好的......所以我觉得标题有点令人困惑。所以我会解释: 我有一个NFC应用程序,我在活动A中处理NDEF_DISCOVERED成功。然后启动一项新活动(B)。 在这个新活动(B)中,我希望能够捕获另一个标记并让活动A像以前一样处理它,所以我使用OnNewIntent来获取标记的这个意图并想要启动活动A. 但是如果我用传统的myIntent = new Intent(this,A.class)调用startActivity(myIntent),那么活动A就会使用这个myIntent进行激活,我希望活动A能够处理活动B上“捕获”的标记意图。

我该怎么做?

感谢。

2 个答案:

答案 0 :(得分:1)

您应该能够将活动B中的标记意图添加到myintent.addExtra("tagkey", tagIntent)的传统意图中。因为Intent实现了Parcelable,所以它将被添加为Parcelable extra。然后在活动A的onCreate()中输入类似:

的内容
Intent intent = getIntent();
if (intent.hasExtra("tagkey")) {
    setIntent(intent.getParcelableExtra("tagkey")
}

将字符串“tagkey”替换为与您自己的代码最相关的内容。您也可以在onNewIntent()中添加类似的代码段。

答案 1 :(得分:0)

如果NDEF消息类型足够具体,只有您的活动A将匹配它,您可以在此活动的Android清单的活动部分设置'android:launchMode =“singleTask”'。每当您使用相同类型的NDEF消息扫描新标记时,活动B将被关闭。