Notification中Extra携带的参数不更新

问题:

创建一个notification在状态栏显示,这个notification在创建之时放了一个intExtra进去,每次创建的时候这个值会有变化,但是在点击notification后getExtra得出来的值却没有更新。
简单说就是Extra没有更新,百思不得解。
后来发现一个参数PendingIntent contentIntent = PendingIntent.getActivity(mContext, 0, intent, 0);,这里面的0是表示什么意思?
然后想到按照google官方Build Notification写的demo却没有这个问题。于是对比参数发现了PendingIntent.FLAG_UPDATE_CURRENT的存在。
源码解释如下

    /**
     * Flag indicating that if the described PendingIntent already exists,
     * then keep it but replace its extra data with what is in this new
     * Intent. For use with {@link #getActivity}, {@link #getBroadcast}, and
     * {@link #getService}. <p>This can be used if you are creating intents where only the
     * extras change, and don't care that any entities that received your
     * previous PendingIntent will be able to launch it with your new
     * extras even if they are not explicitly given to it.
     */
    public static final int FLAG_UPDATE_CURRENT = 1<<27;

修改后一切OK!

Comments
Write a Comment