【问题标题】:onNewIntent in Fragments in androidandroid中片段中的onNewIntent
【发布时间】:2022-04-19 20:05:49
【问题描述】:

我正在尝试开发 NFC 应用程序。我需要从OnNewIntent 中识别出Activity 类中的NFC TAG。现在我需要移动和使用片段而不是活动。他们是否可以替换片段类中的onNewIntent

【问题讨论】:

    标签: java android nfc


    【解决方案1】:

    根据此处(https://stackoverflow.com/a/5320694/3736955),您无法通过 BroadcastReceiver 捕获 NFC 意图。处理它的唯一方法是通过活动中的 ForegroundDispatch 和 onNewIntent() 函数。当 NFC 标签被点击时,它会寻找前台活动来处理他。

    【讨论】:

      【解决方案2】:

      也许最好的方法是在接收到的意图上调用 setIntent() 函数,同时执行 Activity 的 onNewIntent() 并在片段生命周期中通过 getActivity().getIntent() 取回它。 更新: 您还可以使用模式观察者将意图接收事件立即分派到已注册的片段。然后就可以从getActivity().getIntent()中获取需要的数据了。

      【讨论】:

      • 我试过了,onResume(),即使没有再次点击 NFC,它也会获得相同的意图(第一次 NFC 敲击)。
      • @JCodex,意图始终贯穿活动生命周期。因此,最后一个将始终在 onResume() 中可用。如果我理解你的问题是正确的。
      • 是的,所以这种方法不好。相反,您需要在 onNewIntent() 中获取片段的实例,并通过发送 NFC 标签信息来调用片段的功能。这是我的解决方案
      猜你喜欢
      • 1970-01-01
      • 2020-09-13
      • 1970-01-01
      • 2014-01-24
      • 2021-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-24
      相关资源
      最近更新 更多