Varun Vishnoi
Varun Vishnoi

Reputation: 990

Alarm Broadcasting class is not repeating the alarm again

Please guide me so that the alarm (mail sending) will compile again and provide me mail before 1 day of event occurring and then before 30 minutes of event occurring.

Thanks in Advance.

public class MailAlarm extends BroadcastReceiver{

    NotificationManager nm;

    public void onReceive(Context context, Intent intent) {

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

        //int iUniqueId = (int) (System.currentTimeMillis() & 0xfffffff);

        String event = Mail_Fill_Details.Discripton;
        String name = Mail_Fill_Details.Person_Name;
        String mail =Mail_Fill_Details.mailString;
        try {   
            GMailSender sender = new GMailSender("[email protected]", "xyz");
            sender.sendMail("Reminder of "+event+" ("+name+")" ,   
                    "REMINDER!! REMINDER!! REMINDER!! \n\n\nYou got a reminder about "+event+"("+name+") after 5 minutes\n\n\n",   
                    "[email protected]",   
                    mail);   
        } catch (Exception e) {   
            Log.e("SendMail", e.getMessage(), e);   
        }

Rest code is here...

Intent intent = new Intent(Mail_Fill_Details.this,
                                MailAlarm.class);
                        Bundle b12 = new Bundle();

                        b12.putString("serverresponse", Discripton);
                        b12.putString("serverresponse1", Person_Name);
                        b12.putString("serverresponce2", mailString);

                        intent.setAction("" + Math.random());
                        intent.putExtras(b12);
                        PendingIntent displayIntent = PendingIntent
                                .getBroadcast(Mail_Fill_Details.this,
                                        iUniqueId, intent,
                                        PendingIntent.FLAG_UPDATE_CURRENT);
                        alarmManager.set(AlarmManager.RTC_WAKEUP,
                                calendar.getTimeInMillis() - 300000,
                                displayIntent);
                        // alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
                        // calendar.getTimeInMillis(), 20, displayIntent);

Upvotes: 1

Views: 162

Answers (1)

MKJParekh
MKJParekh

Reputation: 34301

I think you should use setRepeating method of AlarmManager instead set method.

am.setRepeating(type, triggerAtMillis, intervalMillis, operation);

Upvotes: 1

Related Questions