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. Best practices - looking for application design advice for a location aware app.

I am working on my first android application and am looking for some
advice on design decisions.
The main goal of the application is to display trails (like cycling/
hiking trails) near the users current location.
The user will first be presented with a mapview with markers
indicating the location of near by trails.
They can then select a trail and have it overlayed on the map.
The biggest problem right now are:
1) the database is not static - new trails will be added periodically
so a master database will be needed online.
2) trail data (gpx files) consume a lot of space, usually 50 - 300 kb
per trail, so storing all trails on the device may not be feasible.

The three main designs I see are the following:

1) Store light-weight data (like trail names, trail head location,
trail distance, etc) in a local SQLite db on the device.
   Store the light-weight data in a remote database (MySQL or DB2) as
well.
   Store heavy-data (the trail gpx files) remotely.
   New trails are added to the remote database.
   Periodically synchronize/update the local SQLite database with the
remote (master) database.
   When a gpx file is needed, transfer it and parse it to display the
overlay in mapview.
   Possibly store the 10 most frequently used trails (gpx files) on
the device to save bandwidth.

   PRO: Getting the list of nearby trails is fast and easy because it
simply queries the local SQLite database.
   PRO: Minimal amount of data is stored on the local device.
   CON: Transfering gpx files to the device + parsing them will be
time consuming and power draining.

2) Store all data remotely.
   Don't store individual gpx files - parse their data into the
database so all information needed in accessable through database
queries.
   Parsing is done on the server.

   PRO: The android app consumes little space and all processing is
done remotely.
   CON: High bandwidth use due to high number of queries and lots of
returned data (could introduce lag and be costly on the data plan).

3) Store all data (light and heavy) both locally and remotely.
   Don't store individual gpx files - parse their data into the
database so all information needed is accessible through database
queries.
   New trails are added to the remote (master) database.
   Parsing of new trail gpx files is done remotely.
   Periodically synchronize/update the local SQLite database with the
remote (master) database.

   PRO: All data is local so simply query the info needed. Good
performance and low bandwidth use.
   PRO: Synchronization can be done at any time when a WiFi connection
is available so no worry about data plan costs.
   CON: Will consume way too much space. 1000 trails could easily
consume over 100 MB.


Because the database is dynamic I see no way of avoiding having a
master database stored remotely so I image any design will have to
involve network access to a remote database at least for
synchronization purposes if nothing else.


Any advice, insight, or discussion is greatly appreciated.

Thanks!!

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

2. Text color problem in Multi Choise dialog

I got a text color problem when diaplaying a multi choise dialog. The
Theme of my app is set like this:

<application android:icon="@drawable/icon" android:label="@string/
app_name" android:theme="@android:style/Theme.Light">
....
</application>

When I pop up a dialog using AlertDialog, text's color in list is
white, and the color of multi select list is white too and I can't see
any of items in it. I'm not special the Theme attribute of the parent
activity who pop up dialog. How can I set text color to black in multi
choise dialog ?
Any help

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

3. print on a bluetooth printer

4. Eclipse issues

5. no route to host Exception on Socket

6. Background Task Result Reporting Hypothetical

7. Executing code after installation