我有一个主要活动,它会在列表中显示一些数据, 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>
答案 0 :(得分:1)
查看Android foreground dispatch facility。如果您为前台发送注册了应用,则您的活动会收到onNewIntent()
个活动而不是第二次启动。
另外,我建议将TECH_DISCOVERED意图放在一个单独的意图过滤器中:
<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" />