Alarm manager for multiple pending intent are not working.

by nomi » Mon, 16 Aug 2010 15:49:34 GMT


Sponsored Links
 Hi all,

In my application i have created pending intent which calls another
activity (after 20mins of alarm off) with the help of alarm manger. It
should happen each time for each new pending intent or when I call
that activity.
But when i create one pending intent and after few mins again create
new pending intent ,then the last one overlap the other previous
pending intents and start specified activity only for ones for the
last pending intent.

I want  that each time i create any pending intent it should start
specified activity after 20 mins of it's alarm off time.How it can be
done ?
here is my code:--


Intent intent = new Intent(getApplicationContext(),AlarmCall.class);

                                        intent.putExtra("PolicyNo3",policyNo2);

                                        intent.putExtra("BarcodeNo",barcode_no);
                                        
Constants.pendingResultList.put(policyNo2, barcode_no);
        
System.out.println(Constants.pendingResultList.containsKey(policyNo2));

                                        PendingIntent pendingIntent =
PendingIntent.getBroadcast(getApplicationContext(),
0,intent,PendingIntent.FLAG_UPDATE_CURRENT);
                                        AlarmManager alarmManager = 
(AlarmManager)
getSystemService(ALARM_SERVICE);

                                long timedely = System.currentTimeMillis() + 
(20*60*1000);
        
alarmManager.set(AlarmManager.RTC_WAKEUP,timedely,
                                            pendingIntent);









////// Below is the code of ALarmCall.class






manger = (NotificationManager)
context.getSystemService(Context.NOTIFICATION_SERVICE);
                 Notification notification = new
Notification(R.drawable.icon,"Please upload
result",System.currentTimeMillis());
                 Intent startActivity1 = new Intent();
                        startActivity1.setClass(context, UploadTest.class);
                        startActivity1.setAction(UploadTest.class.getName());
                        startActivity1.putExtra( "PolicyNo4",policyNo3);
                        startActivity1.putExtra("BarcodeNo1",barcodeNo);
                        startActivity1.addFlags(
                        Intent.FLAG_ACTIVITY_NEW_TASK
                        | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);

                 PendingIntent contentIntent = 
PendingIntent.getActivity(context,
0,startActivity1    ,Intent.FLAG_ACTIVITY_NEW_TASK);
                 notification.setLatestEventInfo(context, "HIV 
Pharmacy","Result of
Id- "+policyNo3,contentIntent);
                 notification.flags = Notification.FLAG_ONLY_ALERT_ONCE |
Notification.FLAG_SHOW_LIGHTS;
                 notification.ledARGB = Color.GREEN;
                 notification.ledOnMS = 1000;
                 notification.ledOffMS = 500;
                 notification.defaults = Notification.DEFAULT_SOUND |
Notification.DEFAULT_VIBRATE;
                 manger.notify(32, notification);
                 context.startActivity(startActivity1);




 Thanks to all.

--



Alarm manager for multiple pending intent are not working.

by skink » Mon, 16 Aug 2010 16:21:40 GMT


 omi wrote:

each time you call getBroadcast|getActivity use unique requestCode

pskink

--


Sponsored Links


Alarm manager for multiple pending intent are not working.

by Kostya Vasilyev » Mon, 16 Aug 2010 17:44:46 GMT


 tt> Setting an alarm cancels any previous alarms that have the same intent 
as the new one.


In your code, the old and new intents only differ by their extras, which
are not considered (I believe).


What you could do is calculate the next point in time when an alarm is
needed, set one alarm, and when it goes off, figure out which of the
possible actions you need to perform.


-- Kostya

16.08.2010 11:49, nomi :

Hi all,

In my application i have created pending intent which calls another
activity (after 20mins of alarm off) with the help of alarm manger. It
should happen each time for each new pending intent or when I call
that activity.
But when i create one pending intent and after few mins again create
new pending intent ,then the last one overlap the other previous
pending intents and start specified activity only for ones for the
last pending intent.

I want that each time i create any pending intent it should start
specified activity after 20 mins of it's alarm off time.How it can be
done ?
here is my code:--


Intent intent = new Intent(getApplicationContext(),AlarmCall.class);

intent.putExtra("PolicyNo3",policyNo2);

intent.putExtra("BarcodeNo",barcode_no);

Constants.pendingResultList.put(policyNo2, barcode_no);

System.out.println(Constants.pendingResultList.containsKey(policyNo2));

PendingIntent pendingIntent =
PendingIntent.getBroadcast(getApplicationContext(),
0,intent,PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager =
(AlarmManager)
getSystemService(ALARM_SERVICE);

long timedely = System.currentTimeMillis() +
(20*60*1000);

alarmManager.set(AlarmManager.RTC_WAKEUP,timedely,
pendingIntent);









////// Below is the code of ALarmCall.class






manger = (NotificationManager)
context.getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = new
Notification(R.drawable.icon,"Please upload
result",System.currentTimeMillis());
Intent startActivity1 = new Intent();
startActivity1.setClass(context, UploadTest.class);
startActivity1.setAction(UploadTest.class.getName());
startActivity1.putExtra( "PolicyNo4",policyNo3);
startActivity1.putExtra("BarcodeNo1",barcodeNo);
startActivity1.addFlags(
Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);

PendingIntent contentIntent =
PendingIntent.getActivity(context,
0,startActivity1 ,Intent.FLAG_ACTIVITY_NEW_TASK);
notification.setLatestEventInfo(context, "HIV
Pharmacy","Result of
Id- "+policyNo3,contentIntent);
notification.flags = Notification.FLAG_ONLY_ALERT_ONCE |
Notification.FLAG_SHOW_LIGHTS;
notification.ledARGB = Color.GREEN;
notifica



Alarm manager for multiple pending intent are not working.

by Paul Turchenko » Mon, 16 Aug 2010 21:02:46 GMT


 endingIntent.FLAG* should help you.

On Aug 16, 12:44pm, Kostya Vasilyev <kmans...@gmail.com> wrote:

--



Alarm manager for multiple pending intent are not working.

by Mitesh Infocus » Tue, 17 Aug 2010 02:41:25 GMT


 commerce and Shopping cart Web portal Solutions at
www.infocuswebdesigning.com

We offer complete web services like, web designing, web development, Flash
websites, Flash Intros, E-commerce sites (os commerce, zen cart

sites) and much more at very cheap cost. For More Details & completed
Projects visit www.infocuswebdesigning.com
Contact us +91-79-650577772(16 lines) & Mob. +91 9725324241
Email : i...@infocuswebdesigning.com

On Mon, Aug 16, 2010 at 6:32 PM, Paul Turchenko <paul.turche...@gmail.com>wrote:

>



Alarm manager for multiple pending intent are not working.

by nomi » Tue, 17 Aug 2010 18:37:36 GMT


 Thanks to all for your response,

I have solved that problem by passing unique id which is depend on
current time:-

        final int intent_id= (int) System.currentTimeMillis();

                                        PendingIntent pendingIntent =
PendingIntent.getBroadcast(getApplicationContext(),intent_id,intent,PendingIntent.FLAG_UPDATE_CURRENT);

        by this change code is working properly and each pending
intent starts
specified activity after 20 mins of it's alarm off time.



--



Alarm manager for multiple pending intent are not working.

by Dianne Hackborn » Wed, 18 Aug 2010 01:00:34 GMT


 That's really janky.  I'd strongly recommend only posting one alarm, for the
next event you have in time, and upon processing that post a new alarm for
the following event.  This is how  most apps work.  Your code here is really
problematic in how it manages its alarms -- for example if you have an alarm
scheduled for something, and the user changes that thing's time or deletes
it, how do you remove the alarm from the alarm manager?




>



Other Threads

1. Expect 18 Android Phones by year end...

http://bits.blogs.nytimes.com/2009/05/27/google-expect-18-android-phones-by-years-end/

Wow...seems like this is going to be a BIG year for Android...
--~--~---------~--~----~------------~-------~--~----~

2. how to change Widget layout when screen is opend

thank you Alan
it was realy helpfull




 Yes there is. You can design 2 different layouts, one for horizontal and
one for vertical. Under res folder, create folder layout-port and place your
portait layout.xml file. create also layout-land  and when you create a new
layout inside this folder, it will automatically be considered as a
landscape layout. Android will choose the appropriate layout at runtime.

Alan Cassar, Software Engineer | Tel: +356 21334457 | Fax: +356 21 334156
ricston Ltd., Northfields Suite 4, Independence Avenue, Mosta MST9026 -
MALTA

email:  alan.cas...@ricston.com | web:http://www.ricston.com


----------
*Disclaimer* - This email and any files transmitted with it are confidential
and contain privileged or copyright information. You must not present this
message to another party without first gaining permission from the sender.
If you are not the intended recipient you must not copy, distribute or use
this email or the information contained in it for any purpose other than to
notify us. If you have received this message in error, please notify the
sender immediately and delete this email from your system. We do not
guarantee that this material is free from viruses or any other defects
although due care has been taken to minimise the risk. Any views stated in
this communication are those of the actual sender and not necessarily those
of Ricston Ltd. or its subsidiaries.



widget that looks li...

--~--~---------~--~----~------------~-------~--~----~

3. CallNotifier: rejecting incoming call because device isn't provisioned

4. Problem of using switch_class for headset detection

5. Camera preview callback and garbage collector

6. Example code of listview/arrayadapter with rows containing multiple text views?

7. SDL init failure, reason is: No available video device