在我的 Android 应用程序中,我有一个主要活动作为我的应用程序的入口点,它在我的清单文件中配置,如下所示:
<activity android:name=".Main"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:alwaysRetainTaskState="true"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
因此,对于特定的用例,假设用户通过单击应用程序启动器内的图标从主屏幕启动应用程序。启动应用程序后,用户从主活动导航到活动 A,然后最终导航到活动 B。此时,用户决定查看他们的 facebook,因此他们单击主页按钮将我的应用程序置于后台,然后启动脸书应用程序。
在查看了他们的 facebook 之后,用户想要返回我的应用程序,所以他们按下 home 键,然后从应用程序启动器启动应用程序(就像他们第一次启动它时所做的那样)。
当用户返回我的应用程序时,我希望应用程序返回到应用程序进入后台时用户所处的最后一个活动,在本例中是活动 B。在清单文件中,我设置了 alwaysRetainTaskState=true以确保操作系统不会杀死我的应用程序的活动。
现在我的问题是:我如何得到我上面描述的行为?每当我单击我的应用程序的图标时,它总是从主活动开始,无论如何。我认为这是因为 category.LAUNCHER 属性。我已经尝试过 android:launchMode=singleTask,但并没有什么不同;它总是从 Main 开始。
如果有人能澄清意图过滤器、启动模式和任务,那就太好了!