Android 启动模式&;近期应用原则

Android 启动模式&;近期应用原则,android,android-activity,android-homebutton,launchmode,Android,Android Activity,Android Homebutton,Launchmode,我有一个WidgetResultActivity和一个NotificationResultActivity,我设置了它们的launchmode=singleInstance。但它们有不同的行为:WidgetResultActivity将不会从最近打开,而NotificationResultActivity将始终从最近打开(它是单独打开的!没有MainActivity)。那么,我如何禁止从最近的thx中打开NotificationResultActivity呢 <activity

我有一个WidgetResultActivity和一个NotificationResultActivity,我设置了它们的launchmode=singleInstance。但它们有不同的行为:WidgetResultActivity将不会从最近打开,而NotificationResultActivity将始终从最近打开(它是单独打开的!没有MainActivity)。那么,我如何禁止从最近的thx中打开NotificationResultActivity呢

    <activity
        android:name=".WidgetResultActivity"
        android:launchMode="singleInstance"
        android:theme="@android:style/Theme.Translucent.NoTitleBar" />

    <activity
        android:name=".NotificationResultActivity"
        android:launchMode="singleInstance"
        android:theme="@android:style/Theme.Translucent.NoTitleBar" />
测试清单:

    <activity
        android:name=".ATester1"
        android:label="@string/app_name" >
    </activity>
    <activity
        android:name=".ATester2"
        android:label="@string/app_name" >
    </activity>
    <activity
        android:name=".ATester3"
        android:label="@string/app_name" >
    </activity>
    <activity
        android:name=".ExcludeFromRecentActivity"
        android:excludeFromRecents="true"
        android:label="@string/app_name" >
    </activity>

测试图像:

第一:

第二:

第三:

第四:


编辑:我真正需要的是对话或者类似的活动,我会在另一篇文章中问@WebnetMobile.com,谢谢你

要防止活动添加到最近的活动中,请添加

android:excludeFromRecents="true"
android文档中的

android:taskAffinity="" 
android:excludeFromRecents="true" 
android:launchMode="singleInstance"

需要taskAffinity,这对我很有用。

谢谢您的快速回复。我试过了,但是“排除最近的活动”会将我的所有活动从最近的活动中排除。对吗?不确定什么是“所有的活动”?有没有活动。没有活动的一半:)标记将阻止
NotificationResultActivity
出现在最近的活动中。它不会影响其他活动-除非您也将此属性添加到它们的
块中,否则这些活动将出现。它确实影响了其他活动:在NotificationResultActivity打开后,我的应用在最近消失。(用户不会方便地从“最近”打开我的应用程序,希望你们能理解我的意思)除了这个标签,并没有其他方法可以影响最近的内容。请参阅:“是否应将此活动启动的任务从最近使用的应用程序列表(“最近的应用程序”)中排除。也就是说,当此活动是新任务的根活动时,此属性确定该任务是否不应出现在最近的应用程序列表中。如果应将该任务从列表中排除,则为“true”false“如果应该包括它。默认值为“false”。“如上所述,My ATester将消失。这是因为AndroidManifest属性android:taskAffinity优先于FLAG_ACTIVITY_NEW_TASK。如果希望ActivityB与ActivityA处于不同的任务中,则需要为其指定不同的taskAffinity。
<activity
    android:name=".NotificationResultActivity"
    android:launchMode="singleInstance"
    android:excludeFromRecents="true"
    android:theme="@android:style/Theme.Translucent.NoTitleBar" />
android:taskAffinity="" 
android:excludeFromRecents="true" 
android:launchMode="singleInstance"