繁体   English   中英

PushWoosh自定义推送广播接收器的活动意图使其他内容为空

[英]PushWoosh Custom Push Broadcast receiver intent to activity gives extras null

我正在将捆绑包从自定义推送广播接收器发送到[此处] [1]给定的活动

这就是我修改代码以激发额外意图的方式:

    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,但是自定义接收器显示了null Extras。

问题出在旗帜上。 我自己想通了。 修改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);
    }

感谢这个链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM