当 PendingIntent 已经在历史堆栈顶部时,它不会重新创建 activity(带有 Extras)
PendingIntent not recreating activity (with Extras) when it is already on history stack top
我正在尝试从通知按钮(使用 PendingIntent)启动 Activity A。当我点击这个通知按钮并且 A 位于历史堆栈顶部时,它的行为不正确:
应该做什么:
- Activity A 必须在 historystack 上复制,这样:
- 当activity A 是在历史堆栈的顶部
之前:
[A,...旧活动...]
之后:
[A,A,...旧活动...]
- 当 activity A 不在 历史堆栈顶部时(默认行为)
之前:
[ B, ... 旧活动 ... ]
之后:
[A, B, ...旧活动...]
发生了什么:
onCreate
被调用,但是 getIntent().getExtras()
是 null
.
- Activity A 被替换而不是重新创建(我想要一个副本)。
我尝试了很多东西:Intent.FLAG*
和 PendingIntent.FLAG*
也尝试过,但都没有成功。
编辑 1:
我尝试了这些常量:
Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK
Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP
(但我不想清顶)
代码(部分):
Intent intentCancel = new Intent(getApplicationContext(), ChallengeProposalActivity.class);
//intent.setAction(String.valueOf(System.currentTimeMillis()));
//intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
intent.putExtra(ChallengeProposal.NAME, proposal);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intentCancel, 0);
代码(完整):http://pastebin.com/vNuEkBvi
我该怎么办?
相关问题:
PendingIntent not working when adding extras in intent
Duplicate MainActivity When Enter From Notification
您已经创建了 intentCancel
对象,但试图在 intent
对象中添加额外内容:
Intent intentCancel = new Intent...
intent.putExtra...
我正在尝试从通知按钮(使用 PendingIntent)启动 Activity A。当我点击这个通知按钮并且 A 位于历史堆栈顶部时,它的行为不正确:
应该做什么:
- Activity A 必须在 historystack 上复制,这样:
- 当activity A 是在历史堆栈的顶部
之前:
[A,...旧活动...]
之后:
[A,A,...旧活动...] - 当 activity A 不在 历史堆栈顶部时(默认行为)
之前:
[ B, ... 旧活动 ... ]
之后:
[A, B, ...旧活动...]
- 当activity A 是在历史堆栈的顶部
发生了什么:
onCreate
被调用,但是getIntent().getExtras()
是null
.- Activity A 被替换而不是重新创建(我想要一个副本)。
我尝试了很多东西:Intent.FLAG*
和 PendingIntent.FLAG*
也尝试过,但都没有成功。
编辑 1: 我尝试了这些常量:
Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK
Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP
(但我不想清顶)
代码(部分):
Intent intentCancel = new Intent(getApplicationContext(), ChallengeProposalActivity.class);
//intent.setAction(String.valueOf(System.currentTimeMillis()));
//intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
intent.putExtra(ChallengeProposal.NAME, proposal);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intentCancel, 0);
代码(完整):http://pastebin.com/vNuEkBvi
我该怎么办?
相关问题:
PendingIntent not working when adding extras in intent
Duplicate MainActivity When Enter From Notification
您已经创建了 intentCancel
对象,但试图在 intent
对象中添加额外内容:
Intent intentCancel = new Intent...
intent.putExtra...