在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组合或任何其他技巧可用来恢复上次使用的活动,而不管该活动是否属于我的应用程序?
答案 0 :(得分:1)
<activity android:name=".AlarmActivity" android:launchMode="singleTask" android:taskAffinity="" android:excludeFromRecents="true"> </activity>
将此代码更改为清单文件并检查结果。