【问题标题】:Android: How do I temporarily handle an Intent in a different activity of my application?Android:如何在我的应用程序的不同活动中临时处理 Intent?
【发布时间】:2013-09-20 18:15:35
【问题描述】:

我正在开发一个支持 NFC 的应用程序。今天,我的清单中有一个意图过滤器,用于处理具有 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>

这很好用。

该应用具有“选择项目”活动和“查看”活动。正如目前所写,意图是在我的“选择一个项目”活动的上下文中处理的。但是,当应用程序处于“视图”活动中时,我希望“视图”处理任何 NFC 意图而不是“选择项目”活动。当“查看”活动不再在堆栈上时,我希望任何 NFC“碰撞”再次由“选择项目”活动处理。

发生这种情况的正确/最佳方式是什么?另请注意,在这种情况下,我不希望看到“哪个应用程序/活动”选择器弹出,因为这会使体验特别乏味和混乱。

【问题讨论】:

    标签: android android-intent nfc ndef


    【解决方案1】:

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

    【讨论】:

    • 太棒了!我的 Google Fu 通常都不错,但我不确定其他方法,但通过 SO 我会发现。 (好吧,没有阅读文档的每一页......)
    猜你喜欢
    • 2013-03-15
    • 1970-01-01
    • 2012-06-17
    • 2015-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-08
    相关资源
    最近更新 更多