After reading lots of sample code into this matter, I'm trying to
figure out the simplest way to achieve the following:

I want to be able to schedule an Intent that calls back to my Alarm
BroadcastReceiver, which in turn fires off my Service. However, I want
to set up so that it calls said Intent twice a day and to only
schedule the alarms if they haven't already been set (likewise for
canceling the alarms).

However, I am unsure if the following code is the correct way to set
and cancel alarms.

    //Static function for setting the alarm
    //My midday calendar object (cal1)

    ...

    //My evening calendar object (cal2)

    Intent myIntent = new Intent(context, MyAlarmReceiver.class);

        PendingIntent firstCallIntent =
PendingIntent.getBroadcast(context, FIRST_CALL_ID, myIntent,
PendingIntent.FLAG_NO_CREATE);
        PendingIntent secondCallIntent=
PendingIntent.getBroadcast(context, SECOND_CALL_ID, myIntent,
PendingIntent.FLAG_NO_CREATE);
        if(firstCallIntent != null){
                if(DEBUG){
                        Log.d(TAG, "Setting Midday Alarm");
                }
                firstCallIntent = PendingIntent.getBroadcast(context,
FIRST_CALL_ID, myIntent, 0);
                alarms.setInexactRepeating(AlarmManager.RTC_WAKEUP,
cal1.getTimeInMillis(), AlarmManager.INTERVAL_DAY, firstCallIntent);
        }
        if(secondCallIntent != null){
                if(DEBUG){
                        Log.d(TAG, "Setting Evening Alarm");
                }
                secondCallIntent = PendingIntent.getBroadcast(context,
SECOND_CALL_ID, myIntent, 0);
            alarms.setInexactRepeating(AlarmManager.RTC_WAKEUP,
cal2.getTimeInMillis(), AlarmManager.INTERVAL_DAY, secondCallIntent);
        }


    //Static call to cancel the alarm.

    Intent myIntent = new Intent(context, MyAlarmReceiver.class);
    PendingIntent firstCallIntent =
PendingIntent.getBroadcast(context, FIRST_CALL_ID, myIntent, 0);
    alarms.cancel(firstCallIntent);
    firstCallIntent.cancel();
    PendingIntent secondCallIntent =
PendingIntent.getBroadcast(context, SECOND_CALL_ID, myIntent, 0);
    alarms.cancel(secondCallIntent);
    secondCallIntent.cancel();

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to