0

在我的应用程序中,我指定了可以从启动器启动的第二个活动,使用此清单条目:

    <activity 
        android:name=".Lists.ListOfListsActivity"
        android:icon="@drawable/ic_launcher_lists" 
        android:launchMode="singleTop"
        android:label="@string/lists_activity_name" >
        <!--  An Intent filter so that the Lists activity shows in the Launcher -->
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

假设我在“主要”活动中打开了应用程序,然后按主页键。我的应用程序仍将运行,但在后台。

稍后,用户从主屏幕中选择“ListsOfListsActivity”的启动器图标。

这会将应用程序带到前台,但不是在“ListOfListsActivity”,而是在它进入后台时的当前活动(例如在“主”活动)。

这很令人困惑,因为用户选择了“ListOfListsActivity”,但显示的是另一个。然后他们必须导航到它。

通过为“ListOfListsActivity”指定launchMode =“singleTask”,我让这个工作更好,但在这种模式下,它不能从另一个活动启动以获得结果(startActivityForResult()),我需要能够这样做才能选择一个列表...

问题:-无论应用程序的当前状态和当前活动如何,如何指定将强制活动到前台并成为选定活动的意图过滤器?

4

1 回答 1

0

我的最终实现是为我想独立于 Launcher 启动的每个活动定义不同的 taskAfinity 字符串。

这样,每个“快捷方式”总是启动我想要的活动,但我无法避免的缺点是用户可能有多个任务,其中包含来自我的应用程序的活动,并且可能相同的活动打开/活动在不同的任务中......

于 2011-07-14T10:36:57.210 回答