不是的PendingIntent重建活动(使用额外)的时候已经是对历史栈顶(PendingInten

2019-10-23 12:42发布

我想从(使用的PendingIntent)通报按钮启动活性 。 当我点击该通知按钮和一个是历史堆栈的顶部,它只是无法正常运行:

它应该做的:

  • 活动A必须复制在historystack,这种方式:
    1. 当活动A在历史堆栈的顶部
      之前:
      [A,...老活动...]
      后:
      [A,A,...老活动...]
    2. 当活动A 是不是对历史堆栈的顶部(默认行为)
      之前:
      [B,......老活动...]
      后:
      [A,B,......老活动...]

怎么了:

  1. onCreate被调用,但getIntent().getExtras()null
  2. 活动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.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不工作

复制MainActivity当从通知设定

Answer 1:

您已经创建intentCancel对象,而是试图把多余的intent对象:

Intent intentCancel = new Intent...
intent.putExtra...


文章来源: PendingIntent not recreating activity (with Extras) when it is already on history stack top