当点击推送通知时,我会使用类似以下代码来启动所需的意图:
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
ctx.startActivity(intent);
这是我从教程中提取的代码片段,但我并不真正理解
FLAG_ACTIVITY_NEW_TASK
和 FLAG_ACTIVITY_SINGLE_TOP
的用途。根据文档:
FLAG_ACTIVITY_NEW_TASK (在API级别1中添加):
使用此标志时,如果已经为您现在要启动的活动运行了任务,则不会启动新活动;相反,当前任务将以其最后状态显示在屏幕前面。
FLAG_ACTIVITY_SINGLE_TOP(在API级别4中添加):
如果设置,那么当它已经在历史堆栈的顶部运行时,该活动将不会被启动。
对我来说两者听起来很像, 我的意思是它听起来像
NEW_TASK
确保如果您的活动已经存在于任务中,则不会创建新任务,而是旧任务会出现(据我理解,在顶部有不同的活动),SINGLE_TOP
仅在它不在堆栈顶部时才启动活动(这是否意味着将有2个或更多个相同活动的实例)?我的问题是:它们之间是否有差异需要同时使用它们?