首頁  >  問答  >  主體

java - 关于安卓 onNewIntent() 触发的问题

我有一个activity,是用来识别一个NFC标签的。这个activity如果没有搜寻到NFC标签的话就不做任何事情。因为我们知道设备在搜索到NFC标签的时候会发出一个新的intent,并且通过intent-filter选择能处理的activity来运行。

现在我的问题是,假设设备搜索到了NFC标签,并且发出一个Intent(),我的activity这个时候正好在堆栈顶部,它的onNewIntent()是否会被触发?

阿神阿神2763 天前566

全部回覆(2)我來回復

  • 高洛峰

    高洛峰2017-04-17 12:02:21

    我想這跟NFC沒什麼關係吧,看你是怎麼設定的該Activity啟動模式,如果你設定該Activity launchMode是SingleTask或SingleTop,那麼在上述情況下,就不會新建一個Activity實例,而是調用onNewIntent()

    回覆
    0
  • 阿神

    阿神2017-04-17 12:02:21

    NFC有前台調度系統,意思是如果當前前台的Activity能夠處理NFC Intent並且開啟了前台調度。 NFC調度系統就會優先把目前NFC Intent交給目前的Activity,如果你將啟動模式設為singleTop,就會直接觸發onNewIntent()。如果你沒開啟前台調度,就會在螢幕下方彈出應用程式選擇列表,當你選擇了目前的Activity是,就會觸發onNewIntent()。

    回覆
    0
  • 取消回覆