Java onNewIntent没有被调用
我试图使用一个意图将推送数据从接收器传递到活动,但它似乎不起作用。知道为什么吗?以下是我的实现: AndroidManifest.xmlJava 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
<?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">