首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LaunchMode和最新的应用原则

LaunchMode和最新的应用原则
EN

Stack Overflow用户
提问于 2012-10-23 16:42:22
回答 2查看 1.2K关注 0票数 1

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

代码语言:javascript
复制
    <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应用程序,当我从通知打开时...

测试代码:

代码语言:javascript
复制
    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);

测试清单:

代码语言:javascript
复制
    <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>

测试图像:

第一个:

第二个:

第三:

第四:

编辑:我真正需要的是对话BEHEVIOR喜欢的活动,我会在另一个帖子中询问。@WebnetMobile.com,还是要谢谢你。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-24 16:36:57

代码语言:javascript
复制
android:taskAffinity="" 
android:excludeFromRecents="true" 
android:launchMode="singleInstance"

taskAffinity是必需的,这对我来说很有效。

票数 1
EN

Stack Overflow用户

发布于 2012-10-23 16:45:20

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

代码语言:javascript
复制
android:excludeFromRecents="true"

添加到清单中的<activity>声明:

代码语言:javascript
复制
<activity
    android:name=".NotificationResultActivity"
    android:launchMode="singleInstance"
    android:excludeFromRecents="true"
    android:theme="@android:style/Theme.Translucent.NoTitleBar" />

参见: android文档中的android:excludeFromRecents

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13026554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档