如何让第二个启动器总是在指定的活动打开应用程序



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

    <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>

假设我在"主"活动处打开应用程序,然后按home键。我的应用程序仍将运行,但在后台。

之后,用户从主屏幕上选择我为"ListsOfListsActivity"设置的启动器图标。

这将把应用程序带到前台,但不是在"ListOfListsActivity",而是在任何它的当前活动是当它去到后台(例如在"主"活动)。

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

我有这个工作得更好,通过指定launchMode ="singleTask"为"ListOfListsActivity",但在这种模式下,它不能从另一个活动的结果启动(startActivityForResult()),我需要能够做到这一点来选择一个列表…

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

我最后的实现是为我想要独立于Launcher启动的每个activity定义一个不同的taskaffinity字符串。

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

相关内容

  • 没有找到相关文章

最新更新