【发布时间】:2014-09-12 10:22:56
【问题描述】:
我有一个 A > B > C 的任务堆栈。我目前在 C 上,然后我按下主页按钮。我收到一条通知,打算将我带到活动 A。我按下通知,我在 A,但如果我按回去,我转到 C,然后是 B,然后是 A。
我正在像这样设置我的 PendingIntent。有什么明显的问题吗?
final Intent notificationIntent = new Intent(mContext, ActivityA.class);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent contentIntent = PendingIntent.getActivity(myContext, 0, notificationIntent, 0);
编辑 1:
我在这里尝试了这个建议:Clear all activities in a task?
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
但我仍然得到相同的结果。我的活动 A 在我的应用程序任务堆栈中开始,我按下返回并转到 C,然后是 B,然后是 A。
我开始认为这在 Android 中是不可能的,或者在使用挂起的 Intent 时是不可能的。
编辑 2: 这不是需要什么标志的问题。更多的问题是标志似乎没有效果。
【问题讨论】:
-
明确地说,您想返回 A 并从堆栈中删除 B 和 C?
-
我想返回 A 并删除 B 和 C,但我不确定我是否只是希望 A 恢复或 A 也被删除,并启动 A 的新实例。
-
@DanS 无论哪种方式。我需要清除 B 和 C。当我可以进行清算时,我会检查 A 的行为。
-
在
ActivityA中你有onNewIntent()实现了吗? -
@DanS 不。我还没有听说过这种方法,但我想专注于从堆栈中正确清除 B 和 C。
标签: android android-intent android-notifications android-pendingintent