我有一个activity,是用来识别一个NFC标签的。这个activity
如果没有搜寻到NFC标签的话就不做任何事情。因为我们知道设备在搜索到NFC标签的时候会发出一个新的intent
,并且通过intent-filter
选择能处理的activity
来运行。
现在我的问题是,假设设备搜索到了NFC标签,并且发出一个Intent()
,我的activity这个时候正好在堆栈顶部,它的onNewIntent()
是否会被触发?
我有一个activity,是用来识别一个NFC标签的。这个activity
如果没有搜寻到NFC标签的话就不做任何事情。因为我们知道设备在搜索到NFC标签的时候会发出一个新的intent
,并且通过intent-filter
选择能处理的activity
来运行。
现在我的问题是,假设设备搜索到了NFC标签,并且发出一个Intent()
,我的activity这个时候正好在堆栈顶部,它的onNewIntent()
是否会被触发?
NFC有前台调度系统,意思就是如果当前前台的Activity能够处理NFC Intent并且开启了前台调度。NFC调度系统就会优先把当前NFC Intent交给当前的Activity,如果你将启动模式设置为singleTop,就会直接触发onNewIntent()。如果你没开启前台调度,就会在屏幕下面弹出应用选择列表,当你选择了当前的Activity是,就会触发onNewIntent()。
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
我想这跟NFC没什么关系吧,看你是怎么设置的该Activity启动模式,如果你设置该Activity launchMode是SingleTask或者SingleTop,那么在上述情况下,就不会新建一个Activity实例,而是调用onNewIntent()