Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 悬而未决的意图似乎没有通过额外的程序_Android_Android Intent_Android Pendingintent - Fatal编程技术网

Android 悬而未决的意图似乎没有通过额外的程序

Android 悬而未决的意图似乎没有通过额外的程序,android,android-intent,android-pendingintent,Android,Android Intent,Android Pendingintent,我使用的意图是当用户单击推送通知时开始的。我有一些问题,通过一个待定的意图传递额外的。当我这样做时: Intent i = new Intent(this, DashboardActivity.class); i.putExtra("pending", true); i.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); PendingIntent pendingIntent = PendingIntent.getActivity(this,0,i,Pen

我使用的意图是当用户单击推送通知时开始的。我有一些问题,通过一个待定的意图传递额外的。当我这样做时:

Intent i = new Intent(this, DashboardActivity.class);
i.putExtra("pending", true);
i.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);

PendingIntent pendingIntent = PendingIntent.getActivity(this,0,i,PendingIntent.FLAG_UPDATE_CURRENT);
我期望这种行为:

  • 挂起的意图将启动仪表板活动
  • 在仪表板活动中,我检查是否有多余的内容
  • 如果我有多余的,去活动B
  • 相反,发生的是:

  • 挂起的意图将启动仪表板活动
  • 附加值为空
  • 以下代码用于检查仪表板活动中的附加项:

    if (getIntent().getExtras() != null) {
        Intent i = new Intent(DashboardActivity.this, B.class);
        startActivity(i);
    }
    
    我不知道如何摆脱这种局面,所以如果有人能帮助我,我将不胜感激

    编辑:


    尝试使用
    pendingent.FLAG\u UPDATE\u CURRENT

    同时添加
    Intent.FLAG\u ACTIVITY\u SINGLE\u TOP
    ,这样如果您的活动已经打开,就不会重新创建

    将上述两个标志添加到您的意图中

    此外,在仪表板活动中,还应实现
    onNewIntent

    @Override
    public void onNewIntent(Intent intent){
        Bundle extras = intent.getExtras();
        if(extras != null){
            if(extras.containsKey("pending"))
         {
    
         }
      }
    

    Hi-kapsym,PendingEvent.FLAG\u UPDATE\u CURRENT已插入PendingEvent,并且在Intent.FLAG\u ACTIVITY\u SINGLE\u TOP之后没有任何更改。请注意,您将启动挂起的Intent的代码放置在何处。它是通知管理器的一部分吗?我的意思是你在触发通知时做了什么?是的,是通知管理器的一部分。在挂起的意图之后是notificationbuilder,它有一个setContentIntent()属性。我已经添加了传入推送通知时激发的代码,并添加了更新。您是实现了onNewIntent方法还是试图在onCreate中获得意图?
    @Override
    public void onNewIntent(Intent intent){
        Bundle extras = intent.getExtras();
        if(extras != null){
            if(extras.containsKey("pending"))
         {
    
         }
      }