我有一个activity,是用来识别一个NFC标签的。这个activity
如果没有搜寻到NFC标签的话就不做任何事情。因为我们知道设备在搜索到NFC标签的时候会发出一个新的intent
,并且通过intent-filter
选择能处理的activity
来运行。
现在我的问题是,假设设备搜索到了NFC标签,并且发出一个Intent()
,我的activity这个时候正好在堆栈顶部,它的onNewIntent()
是否会被触发?
高洛峰2017-04-17 12:02:21
我想這跟NFC沒什麼關係吧,看你是怎麼設定的該Activity啟動模式,如果你設定該Activity launchMode是SingleTask或SingleTop,那麼在上述情況下,就不會新建一個Activity實例,而是調用onNewIntent()
阿神2017-04-17 12:02:21
NFC有前台調度系統,意思是如果當前前台的Activity能夠處理NFC Intent並且開啟了前台調度。 NFC調度系統就會優先把目前NFC Intent交給目前的Activity,如果你將啟動模式設為singleTop,就會直接觸發onNewIntent()。如果你沒開啟前台調度,就會在螢幕下方彈出應用程式選擇列表,當你選擇了目前的Activity是,就會觸發onNewIntent()。