Android NFC检测:启动活动或显示对话框
我有一个主活动,它在列表中显示一些数据,还有一个nfc异步任务,它从卡中读取一些数据。我希望实现以下行为:Android NFC检测:启动活动或显示对话框,android,android-activity,nfc,Android,Android Activity,Nfc,我有一个主活动,它在列表中显示一些数据,还有一个nfc异步任务,它从卡中读取一些数据。我希望实现以下行为: 如果应用程序已关闭,且手机附近放置了一张卡,则应启动主要活动,同时启动nfc异步任务。异步任务的结果应显示在对话框中 如果应用程序已打开且附近放置了一张卡,则应重新启动nfc asynctask,并且只应打开一个包含结果的对话框 我目前的方法总是从主要活动开始。这意味着,有时,我的主要活动有多个实例,当用户点击后退按钮时,会打开另一个活动实例,而不是切换到主菜单 清单 <activi
<activity
...
android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.nfc.action.TECH_DISCOVERED"/>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data android:name="android.nfc.action.TECH_DISCOVERED" android:resource="@xml/filter_nfc"/>
</activity>
看看Android的。如果您为前台调度注册应用程序,您的活动将收到一个onNewIntent()
事件,而不是第二次开始
此外,我建议将TECH_发现的意图放在单独的意图过滤器中:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.nfc.action.TECH_DISCOVERED" />
</intent-filter>
<meta-data android:name="android.nfc.action.TECH_DISCOVERED"
android:resource="@xml/filter_nfc" />
请添加logcat值以便您指定,您希望调试哪些信息?因为没有错误消息或类似的东西。您是否尝试过android:launchMode=“singleTask”?是的,同样的行为。我仍然可以实例化更多的实例,因为两个操作都会导致相同的活动。我必须承认,对于第一个目的,它工作得很好!这意味着如果应用程序关闭或主要活动处于焦点状态。但是如果我打开了另一个活动,用户会被重定向到主活动,但主活动会被重新创建。。。这意味着有多个实例。如果你想让应用程序的其他活动也有这样的行为,那么你也必须为这些活动启用foregorund调度。在收到前台调度事件后,您可以循环回到您的主要活动。前台调度是我要查找的关键字。即使使用分层视图结构(activity a->activity B->activity C),我也能够链接对onNewIntent的调用,因此总是将用户重定向到主活动。再次感谢你!