正确的意图标志可返回到上一次打开的活动,无论应用程序隶属关系如何

时间:2018-11-29 14:53:13

标签: android android-intent android-activity back-stack

在may应用程序中,有时会从服务启动一次活动“ AlertActivity”(可将其视为发出警报)。如果他/她很忙,用户可以选择与该警报交互或取消警报。当用户取消活动时,我完成该操作,并希望将该用户带回他当前正在使用的活动(不一定来自我自己的应用程序)。

我首先开始:

            Intent intent = new Intent(ctx, AlertActivity.class);

            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            //Note that Intent.FLAG_ACTIVITY_NEW_TASK is needed in order to call startActivity without an activity context

            startActivity(intent);

使用这种方法,AlertActivity会完成我的应用程序中最近使用的活动,而不是警报之前任何应用程序中最近打开的活动。

我接下来尝试的是:

            Intent intent = new Intent(ctx, AlertActivity.class);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
            startActivity(intent);

如果用户在警报触发之前使用了我应用程序中的活动,则该操作始终会完成不属于我应用程序的最后一个活动,这不是我想要的。

在完成AlertActivity之后,是否存在任何Flags组合或任何其他技巧可用来恢复上次使用的活动,而不管该活动是否属于我的应用程序?

1 个答案:

答案 0 :(得分:1)

<activity android:name=".AlarmActivity" android:launchMode="singleTask" android:taskAffinity="" android:excludeFromRecents="true"> </activity>

将此代码更改为清单文件并检查结果。