正确的 intent-flags 返回到上次打开的 activity 而不管应用程序从属关系

Right intent-flags to go back to last opened activity regardless of app affiliation

在可能的应用程序中,有一个 activity "AlertActivity" 偶尔从服务启动(将其视为响起的警报)。如果 he/she 忙,用户可以选择与此警报交互或取消它。当用户取消 activity 时,我完成 () 它并希望将用户带回他当前正在使用的 activity(不一定来自我自己的应用程序)。

我首先开始于:

            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 完成到我的应用程序最近使用的 activity,而不是警报之前任何应用程序最后打开的 activity。

接下来我尝试的是:

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

它总是完成到不属于我的应用程序的最后一个 activity,这不是我想要的,如果用户在警报触发之前使用我的应用程序中的 activity .

在完成 AlertActivity 后,是否有任何标志组合或任何其他技巧可以恢复上次使用的 activity,而不管这个 activity 是否属于我的应用程序?

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

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