【发布时间】:2011-01-04 18:51:02
【问题描述】:
在我的 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 后,用户想要返回我的应用程序,因此他们按下主页键,然后从应用程序启动器启动应用程序(就像他们第一次启动应用程序时所做的那样)。
当用户返回我的应用程序时,我希望应用程序返回到应用程序进入后台时用户所处的最后一个活动,在本例中为活动 B。在清单文件中,我已设置alwaysRetainTaskState=true 以确保操作系统不会终止我的应用程序的活动。
现在我的问题是:我如何获得上述行为?每当我单击我的应用程序的图标时,它总是从主活动开始,无论如何。我认为这是因为 category.LAUNCHER 属性。我已经尝试过 android:launchMode=singleTask,但并没有什么不同;它总是从 Main 开始。
如果有人能阐明意图过滤器、启动模式和任务,那就太好了!
【问题讨论】:
-
我觉得这个问题太老了,应该更新到developer.android.com/guide/components/…
标签: java android filter manifest android-intent