我的应用程序的根活动有两个意图过滤器
<activity
android:name=".MyActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Dialog" >
<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.NDEF_DISCOVERED" />
<data android:mimeType="application/com.example.package" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
一个过滤器用于从启动器图标启动应用程序,另一个是在用户触摸 NFC 标签时启动 Activity。
我希望当用户从应用程序中的任何活动中按下 HOME 按钮时,下次他按下启动器图标或触摸 NFC 标签时,应用程序必须恢复(每个应用程序都是如此)。
但这就是正在发生的事情:当用户点击 NFC 标签时,会启动第一个活动。然后他导航到进一步的活动。按主页。再次点击 NFC 标签,启动第一个活动(MyActivity),并清除之前的堆栈。
另一方面,当用户选择启动器图标,导航到更多活动,按 HOME,然后再次按启动器图标时,MyActivity 作为堆栈顶部的新活动启动。(现在堆栈中有两个 MyActivity)。