我有一个在列表中显示一些数据的主要活动和一个从卡中读取一些数据的nfc-asynctask 。我想实现以下行为:
- 如果应用程序关闭并且在手机附近放了一张卡片,则应该启动 main-activity 并同时启动 nfc-asynctask。asynctask 的结果应显示在对话框中。
- 如果打开应用程序并在附近放了一张卡片,则应重新启动 nfc-asynctask,并且只应打开一个显示结果的对话框。
我目前的方法总是启动主要活动。这意味着有时,我的主活动有多个实例,当用户点击后退按钮时,不是切换到主菜单,而是打开了另一个活动实例。
显现
<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>