防止活动从android中的最近应用列表运行

时间:2014-02-08 06:23:28

标签: android android-activity broadcastreceiver

我有一个活动A,它在收到自定义广播时开始。此活动不是启动器活动。

接收器

@Override
public void onReceive(Context context, Intent intent) {
    Intent i = new Intent(context,A.class);
    i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    i.putExtras(intent.getExtras());
    context.startActivity(i);
}

接收意图值(Intent有一些值)并完全填写一些任务。整个过程工作正常。

问题是,当我打开最近的应用程序列表(长按主页按钮)时,此活动出现(不是启动器活动),当我点击它时,活动以意图值!!开始。所以我无法检查这个活动是从广播接收器还是从其他接收器开始的。

我该如何解决这个问题?此活动应仅在广播接收时开始。

修改

清单

android:name".A"
android:screenOrientation="portrait"
android:launchMode="singleInstance"
android:noHistory="true"
android:taskAffinity=""

2 个答案:

答案 0 :(得分:4)

你有没有尝试过:

机器人:名称 “.A”

机器人:excludeFromRecents = “真”

这会阻止您的活动显示在最近的列表中。

答案 1 :(得分:0)

请参阅this

当您的活动是新任务的根目录时,它不会出现在最近的列表中。如果它不是根,请尝试添加taskAffinity属性。