Android Multiple Notifications and with multiple intents

前端 未结 4 961
攒了一身酷
攒了一身酷 2021-02-13 19:02

I have a fairly simple app that takes the input from a user and then sets it as a notification. The user can create as many notifications as he/she likes. I want the user to cli

4条回答
  •  抹茶落季
    2021-02-13 19:42

    I know this was a lot time ago but i feel that the answers have not said anything about the problem in your code. So the problem is pretty much here PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT);

    So you create a pendingIntent from the stackbuilder whith the flag of update_current. If you look at FLAG_UPDATE_CURRENT it says

     /**
     * 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}. 

    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;

    So what happens in your use case is that you create two identical pendingintents from the stackbuilder and the second intent overrides the first one . Actually you never create a second you just update the extras of the first one.

    So unfortunately there is no available flag for your use case , but there is a good hack around it. What you can do is use the setAction of your resultIntent and place a random string or a string that makes sense to your app.

    eg. resultIntent.setAction("dummy_action_" + notification.id);

    This will make your resultIntent unique enough , so that the pendingIntent will create it rather than updating a previous one.

提交回复
热议问题