我正在发送自定义推送广播接收器的捆绑到[here] [1]
给出的活动这就是我修改代码以使用extras激发意图的方法:
Intent launchIntent = new Intent(context, Home2Activity.class);
launchIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
//Put push notifications payload in Intent
launchIntent.putExtras(pushBundle);
launchIntent.putExtra(PushManager.PUSH_RECEIVE_EVENT, dataObject.toString());
context.startActivity(launchIntent);
普通接收器工作正常并正确触发onNewIntent但自定义接收器显示空的附加内容。
答案 0 :(得分:1)
问题在于旗帜。我自己想通了。 修改pushwoosh文档的自定义推送广播接收器以检索附加内容,如下所示:
public class NotificationReceiver extends BroadcastReceiver
{
public void onReceive(Context context, Intent intent)
{
if (intent == null)
return;
//Let Pushwoosh SDK to pre-handling push (Pushwoosh track stats, opens rich pages, etc.).
//It will return Bundle with a push notification data
Bundle pushBundle = PushManagerImpl.preHandlePush(context, intent);
if(pushBundle == null)
return;
//get push bundle as JSON object
JSONObject dataObject = PushManagerImpl.bundleToJSON(pushBundle);
Log.d("APIPushwoosh", dataObject.toString());
//Get default launcher intent for clarity
//Intent launchIntent = new Intent(context, Home2Activity.class);
Intent launchIntent= new Intent();
launchIntent.setClass(context, Home2Activity.class);
launchIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED| Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);
//Put push notifications payload in Intent
//launchIntent.putExtras(pushBundle);
launchIntent.putExtra(PushManager.PUSH_RECEIVE_EVENT, dataObject.toString());
//GlobalConst.setPush(dataObject.toString());
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, launchIntent, PendingIntent.FLAG_UPDATE_CURRENT);
try {
contentIntent.send();
} catch (PendingIntent.CanceledException e) {
e.printStackTrace();
}
//Start activity!
//context.startActivity(launchIntent);
//Let Pushwoosh SDK post-handle push (track stats, etc.)
PushManagerImpl.postHandlePush(context, intent);
}
感谢link。