Java onNewIntent没有被调用

Java onNewIntent没有被调用,java,android,parse-platform,Java,Android,Parse Platform,我试图使用一个意图将推送数据从接收器传递到活动,但它似乎不起作用。知道为什么吗?以下是我的实现: AndroidManifest.xml <?xml version="1.0" encoding="UTF-8"?><!-- PushData.java package com.appName; import android.os.Parcel; import android.os.Parcelable; public class PushData implements

我试图使用一个意图将推送数据从接收器传递到活动,但它似乎不起作用。知道为什么吗?以下是我的实现:

AndroidManifest.xml

<?xml version="1.0" encoding="UTF-8"?><!--
PushData.java

package com.appName;


import android.os.Parcel;
import android.os.Parcelable;


public class PushData implements Parcelable{
   String name;
   String contactNumber;
   String durationText;


   public PushData (String name,String contactNumber,String durationText ){
  /*
   * Reconstruct from the Parcel. Keep same order as in writeToParcel()
   */

       this.name = name;
       this.contactNumber = contactNumber;
       this.durationText = durationText;
  }

  public PushData(Parcel source) {
      name = source.readString();
      contactNumber = source.readString();
      durationText = source.readString();

  }


    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(name);
        dest.writeString(contactNumber);
        dest.writeString(durationText);
   }

   @Override
   public int describeContents() {
      return 0;
   }

   public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {

      public PushData createFromParcel(Parcel source) {

          return new PushData(source);
      }

      public PushData[] newArray(int size) {

          return new PushData[size];
      }

  };
}
在MainActivity中实施onNewIntent:

 @Override
protected void onNewIntent(Intent intent){
    super.onNewIntent(intent);
    setIntent(intent);

    if (intent.getStringExtra("method").equals("updateStatus")) {
        alertString = intent.getStringExtra("alert");
        pushData = intent.getParcelableExtra("pushData");
        updateStatus();
    }
}



public void updateStatus() {


    if (pushData != null) {
        SharedPreferences.Editor editor = preferences.edit();
        editor.putString("name", pushData.name);
        editor.putString("contactNumber", pushData.contactNumber);
        editor.putString("duration", pushData.durationText);
    }
}

我能知道这里怎么了吗?我在另一个应用程序上也做过类似的实现,效果非常好。

我认为这不是关于你的旗帜,而是关于你的活动的启动模式


这个方法似乎只有在其启动模式为singleTask或sigleTop时才被调用

您的清单中也有拼写错误。改变

<activity android:name="com.appNamw.RouteView"
    android:label="@string/title_activity_route_view"
    android:screenOrientation="landscape">


将标志\活动\单一\顶部标志添加到您的意图中
(请参阅)。

如果将FLAG_ACTIVITY_NEW_TASK更改为FLAG_ACTIVITY_SINGLE_TOP怎么办?mainIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_SINGLE_TOP);解决了这个问题。你能移动这个来回答吗?这样我就可以很高兴听到它。张贴了答案。
 @Override
protected void onNewIntent(Intent intent){
    super.onNewIntent(intent);
    setIntent(intent);

    if (intent.getStringExtra("method").equals("updateStatus")) {
        alertString = intent.getStringExtra("alert");
        pushData = intent.getParcelableExtra("pushData");
        updateStatus();
    }
}



public void updateStatus() {


    if (pushData != null) {
        SharedPreferences.Editor editor = preferences.edit();
        editor.putString("name", pushData.name);
        editor.putString("contactNumber", pushData.contactNumber);
        editor.putString("duration", pushData.durationText);
    }
}
<activity android:name="com.appNamw.RouteView"
    android:label="@string/title_activity_route_view"
    android:screenOrientation="landscape">
<activity android:name="com.appName.RouteView"
    android:label="@string/title_activity_route_view"
    android:screenOrientation="landscape">