Android:如何在我的应用程序的不同活动中临时处理Intent?

时间:2013-09-20 18:15:35

标签: android android-intent nfc ndef

我正在开发一种支持NFC的应用程序。今天我在清单中有一个intent-filter用于处理具有NDEF记录的NFC“颠簸”:

<intent-filter>
  <action android:name="android.nfc.action.NDEF_DISCOVERED" />
  <category android:name="android.intent.category.DEFAULT" />
  <data android:scheme="wifi" />
  <data android:scheme="socket" />
</intent-filter>

这很好用。

该应用有“选择项目”活动和“查看”活动。按照目前的编写,Intent是在我的“选择项目”活动的上下文中处理的。但是,当应用程序处于“查看”活动时,我希望“视图”处理任何NFC意图而不是“选择项目”活动。当“视图”活动不再在堆栈上时,我希望任何NFC“颠簸”再次由“选择项目”活动处理。

实现这一目标的最佳方式是什么?另请注意,在这种情况下,我不希望看到“哪个应用程序/活动”选择器弹出,因为这会使体验变得特别繁琐和令人困惑。

1 个答案:

答案 0 :(得分:1)

当您的活动(“查看”或“选择项目”)位于前台时,您可以使用前台调度来检测新标记。请参阅NfcAdapter的enableForegroundDispatch()方法。使用前台调度注册的活动将优先于应用清单中的意图过滤器。