Android Pending intent started from notification doesn't replace the last











up vote
8
down vote

favorite
1












I've read many posts on the same topic and tried all the given solutions without getting the result I want.
The program should start an intent with extras from a notification:



NotificationManager mNotificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);  

Intent notificationIntent = new Intent(context, myActivity.class);
notificationIntent.putExtra("someData", data);

PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);

mNotificationManager.notify(ID, notification);


The problem is that when a new notification is shown, the extras added to the intent is the same as in the first notification. I've triend with differnt flags in both the intent and the pending intent, without result. What am I getting wrong?
If i just launch the same activity (and the same extras) with a button, everything works as it's supposed to.










share|improve this question
























  • possible duplicate of Android keeps caching my intents Extras, how to declare a pending intent that keeps fresh extras?
    – Pentium10
    Jul 5 '10 at 13:18






  • 1




    Yes, the thing is, i read that post, and a couple more, but none of them worked for me. However, in some way, i managed to solve it, and will post my solution here soon.
    – Emil
    Jul 5 '10 at 14:34















up vote
8
down vote

favorite
1












I've read many posts on the same topic and tried all the given solutions without getting the result I want.
The program should start an intent with extras from a notification:



NotificationManager mNotificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);  

Intent notificationIntent = new Intent(context, myActivity.class);
notificationIntent.putExtra("someData", data);

PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);

mNotificationManager.notify(ID, notification);


The problem is that when a new notification is shown, the extras added to the intent is the same as in the first notification. I've triend with differnt flags in both the intent and the pending intent, without result. What am I getting wrong?
If i just launch the same activity (and the same extras) with a button, everything works as it's supposed to.










share|improve this question
























  • possible duplicate of Android keeps caching my intents Extras, how to declare a pending intent that keeps fresh extras?
    – Pentium10
    Jul 5 '10 at 13:18






  • 1




    Yes, the thing is, i read that post, and a couple more, but none of them worked for me. However, in some way, i managed to solve it, and will post my solution here soon.
    – Emil
    Jul 5 '10 at 14:34













up vote
8
down vote

favorite
1









up vote
8
down vote

favorite
1






1





I've read many posts on the same topic and tried all the given solutions without getting the result I want.
The program should start an intent with extras from a notification:



NotificationManager mNotificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);  

Intent notificationIntent = new Intent(context, myActivity.class);
notificationIntent.putExtra("someData", data);

PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);

mNotificationManager.notify(ID, notification);


The problem is that when a new notification is shown, the extras added to the intent is the same as in the first notification. I've triend with differnt flags in both the intent and the pending intent, without result. What am I getting wrong?
If i just launch the same activity (and the same extras) with a button, everything works as it's supposed to.










share|improve this question















I've read many posts on the same topic and tried all the given solutions without getting the result I want.
The program should start an intent with extras from a notification:



NotificationManager mNotificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);  

Intent notificationIntent = new Intent(context, myActivity.class);
notificationIntent.putExtra("someData", data);

PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);

mNotificationManager.notify(ID, notification);


The problem is that when a new notification is shown, the extras added to the intent is the same as in the first notification. I've triend with differnt flags in both the intent and the pending intent, without result. What am I getting wrong?
If i just launch the same activity (and the same extras) with a button, everything works as it's supposed to.







android notifications android-pendingintent






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 8 at 11:23









Cœur

16.8k9101139




16.8k9101139










asked Jul 5 '10 at 12:33









Emil

1,2541012




1,2541012












  • possible duplicate of Android keeps caching my intents Extras, how to declare a pending intent that keeps fresh extras?
    – Pentium10
    Jul 5 '10 at 13:18






  • 1




    Yes, the thing is, i read that post, and a couple more, but none of them worked for me. However, in some way, i managed to solve it, and will post my solution here soon.
    – Emil
    Jul 5 '10 at 14:34


















  • possible duplicate of Android keeps caching my intents Extras, how to declare a pending intent that keeps fresh extras?
    – Pentium10
    Jul 5 '10 at 13:18






  • 1




    Yes, the thing is, i read that post, and a couple more, but none of them worked for me. However, in some way, i managed to solve it, and will post my solution here soon.
    – Emil
    Jul 5 '10 at 14:34
















possible duplicate of Android keeps caching my intents Extras, how to declare a pending intent that keeps fresh extras?
– Pentium10
Jul 5 '10 at 13:18




possible duplicate of Android keeps caching my intents Extras, how to declare a pending intent that keeps fresh extras?
– Pentium10
Jul 5 '10 at 13:18




1




1




Yes, the thing is, i read that post, and a couple more, but none of them worked for me. However, in some way, i managed to solve it, and will post my solution here soon.
– Emil
Jul 5 '10 at 14:34




Yes, the thing is, i read that post, and a couple more, but none of them worked for me. However, in some way, i managed to solve it, and will post my solution here soon.
– Emil
Jul 5 '10 at 14:34












3 Answers
3






active

oldest

votes

















up vote
9
down vote



accepted










I don't know why I've had such problems with getting this to work. The combination of flags I used to get it to work properly was:



PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 
PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_ONE_SHOT);


I also removed all of the flags used when creating the notificationIntent.






share|improve this answer




























    up vote
    5
    down vote













    Try to add an attribute in AndroidManifest.xml file:



    <activity ... android:launchMode="singleTop"/>





    share|improve this answer




























      up vote
      0
      down vote













      Try to set request code for each PendingIntent and it will work



      PendingIntent pendingIntent = PendingIntent.getActivity(this, RandomInt, intent,
      PendingIntent.FLAG_ONE_SHOT);





      share|improve this answer























        Your Answer






        StackExchange.ifUsing("editor", function () {
        StackExchange.using("externalEditor", function () {
        StackExchange.using("snippets", function () {
        StackExchange.snippets.init();
        });
        });
        }, "code-snippets");

        StackExchange.ready(function() {
        var channelOptions = {
        tags: "".split(" "),
        id: "1"
        };
        initTagRenderer("".split(" "), "".split(" "), channelOptions);

        StackExchange.using("externalEditor", function() {
        // Have to fire editor after snippets, if snippets enabled
        if (StackExchange.settings.snippets.snippetsEnabled) {
        StackExchange.using("snippets", function() {
        createEditor();
        });
        }
        else {
        createEditor();
        }
        });

        function createEditor() {
        StackExchange.prepareEditor({
        heartbeatType: 'answer',
        convertImagesToLinks: true,
        noModals: true,
        showLowRepImageUploadWarning: true,
        reputationToPostImages: 10,
        bindNavPrevention: true,
        postfix: "",
        imageUploader: {
        brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
        contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
        allowUrls: true
        },
        onDemand: true,
        discardSelector: ".discard-answer"
        ,immediatelyShowMarkdownHelp:true
        });


        }
        });














         

        draft saved


        draft discarded


















        StackExchange.ready(
        function () {
        StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f3179462%2fandroid-pending-intent-started-from-notification-doesnt-replace-the-last%23new-answer', 'question_page');
        }
        );

        Post as a guest
































        3 Answers
        3






        active

        oldest

        votes








        3 Answers
        3






        active

        oldest

        votes









        active

        oldest

        votes






        active

        oldest

        votes








        up vote
        9
        down vote



        accepted










        I don't know why I've had such problems with getting this to work. The combination of flags I used to get it to work properly was:



        PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 
        PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_ONE_SHOT);


        I also removed all of the flags used when creating the notificationIntent.






        share|improve this answer

























          up vote
          9
          down vote



          accepted










          I don't know why I've had such problems with getting this to work. The combination of flags I used to get it to work properly was:



          PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 
          PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_ONE_SHOT);


          I also removed all of the flags used when creating the notificationIntent.






          share|improve this answer























            up vote
            9
            down vote



            accepted







            up vote
            9
            down vote



            accepted






            I don't know why I've had such problems with getting this to work. The combination of flags I used to get it to work properly was:



            PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 
            PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_ONE_SHOT);


            I also removed all of the flags used when creating the notificationIntent.






            share|improve this answer












            I don't know why I've had such problems with getting this to work. The combination of flags I used to get it to work properly was:



            PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 
            PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_ONE_SHOT);


            I also removed all of the flags used when creating the notificationIntent.







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Jul 6 '10 at 0:43









            Emil

            1,2541012




            1,2541012
























                up vote
                5
                down vote













                Try to add an attribute in AndroidManifest.xml file:



                <activity ... android:launchMode="singleTop"/>





                share|improve this answer

























                  up vote
                  5
                  down vote













                  Try to add an attribute in AndroidManifest.xml file:



                  <activity ... android:launchMode="singleTop"/>





                  share|improve this answer























                    up vote
                    5
                    down vote










                    up vote
                    5
                    down vote









                    Try to add an attribute in AndroidManifest.xml file:



                    <activity ... android:launchMode="singleTop"/>





                    share|improve this answer












                    Try to add an attribute in AndroidManifest.xml file:



                    <activity ... android:launchMode="singleTop"/>






                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered Jul 23 '11 at 21:07









                    Vaha

                    12122




                    12122






















                        up vote
                        0
                        down vote













                        Try to set request code for each PendingIntent and it will work



                        PendingIntent pendingIntent = PendingIntent.getActivity(this, RandomInt, intent,
                        PendingIntent.FLAG_ONE_SHOT);





                        share|improve this answer



























                          up vote
                          0
                          down vote













                          Try to set request code for each PendingIntent and it will work



                          PendingIntent pendingIntent = PendingIntent.getActivity(this, RandomInt, intent,
                          PendingIntent.FLAG_ONE_SHOT);





                          share|improve this answer

























                            up vote
                            0
                            down vote










                            up vote
                            0
                            down vote









                            Try to set request code for each PendingIntent and it will work



                            PendingIntent pendingIntent = PendingIntent.getActivity(this, RandomInt, intent,
                            PendingIntent.FLAG_ONE_SHOT);





                            share|improve this answer














                            Try to set request code for each PendingIntent and it will work



                            PendingIntent pendingIntent = PendingIntent.getActivity(this, RandomInt, intent,
                            PendingIntent.FLAG_ONE_SHOT);






                            share|improve this answer














                            share|improve this answer



                            share|improve this answer








                            edited Jan 17 at 13:40









                            Aditi Rawat

                            80511015




                            80511015










                            answered Jan 17 at 12:53









                            Ali Shawky

                            76




                            76






























                                 

                                draft saved


                                draft discarded



















































                                 


                                draft saved


                                draft discarded














                                StackExchange.ready(
                                function () {
                                StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f3179462%2fandroid-pending-intent-started-from-notification-doesnt-replace-the-last%23new-answer', 'question_page');
                                }
                                );

                                Post as a guest




















































































                                Popular posts from this blog

                                Guess what letter conforming each word

                                Port of Spain

                                Run scheduled task as local user group (not BUILTIN)