1

我有一个 WidgetResultActivity 和一个 NotificationResultActivity,我设置了它们的启动模式=singleInstance。但它们有不同的行为:WidgetResultActivity 不会从 RECENT 打开,而 NotificationResultActivity 将始终从 RECENT 打开(它是单独打开的!没有 MainActivity)。那么如何禁止从 REcent 打开 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" />

编辑:当我从通知中打开时,请查看我的 ATester 应用程序......

测试代码:

    NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    Notification notification = new Notification(R.drawable.ic_launcher, getString(R.string.app_name), java.lang.System.currentTimeMillis());
    notification.flags = Notification.FLAG_NO_CLEAR;
    Intent intent = new Intent(this, ExcludeFromRecentActivity.class);
    // intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    PendingIntent activity = PendingIntent.getActivity(this, R.string.app_name, intent, PendingIntent.FLAG_UPDATE_CURRENT);
    notification.setLatestEventInfo(this, "Open Activity: " + ABox.class.getSimpleName(), "new Intent()", activity);
    manager.notify(R.string.app_name, notification);

测试清单:

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

测试图像:

第一个:在此处输入图像描述

第二:在此处输入图像描述

第三:在此处输入图像描述

第四:在此处输入图像描述

编辑:我真正需要的是 DIALOG BEHEVIOR LIKE Activity,我将在另一篇文章中询问。@WebnetMobile.com,同样感谢你们。

4

2 回答 2

2

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

android:excludeFromRecents="true"

对其<activity>在 Manifest 中的声明:

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

请参阅: android 文档中的android:excludeFromRecents

于 2012-10-23T08:45:20.317 回答
1
android:taskAffinity="" 
android:excludeFromRecents="true" 
android:launchMode="singleInstance"

需要taskAffinity,这对我有用。

于 2012-10-24T08:36:56.653 回答