AlarmManager setRepeating()

alarmmanager, android, broadcastreceiver, java

Solution

use this code

  AlarmManager alarmMgr;
  PendingIntent pendingIntent;

    public void startAlarmManager()
        {
             Intent dialogIntent = new Intent(getBaseContext(), AlarmBroadcastReceiver.class);

                  alarmMgr = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
                  pendingIntent = PendingIntent.getBroadcast(this, 0, dialogIntent,PendingIntent.FLAG_CANCEL_CURRENT);

                  alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(), 10000, pendingIntent);

              }
        }

wheather you want to stop alarm

public void stopAlarmManager()
{          
    if(alarmMgr != null)
       alarmMgr.cancel(pendingIntent);
}

Be Remembered dont forget to register Receiver in manifest file

  <receiver android:name=".AlarmBroadcastReceiver" >
        </receiver>

Problem

My program is designed to create a repeating alarm that triggers a broadcastreceiver in turn making a notification. The alarm is repeated using a user-entered interval. For example, if i want to set the alarm to run every 10 seconds, how would I do that? ``` am.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 10000, calpendingintent); ``` Is this right? and my broadcast receiver isn't being called either for some reason. ``` public static void createAlarms(Context mcontext) { cal = Calendar.getInstance(); cal.add(Calendar.HOUR, alarmintervalint); calintent = new Intent(mcontext, AlarmBroadcastReceiver.class); calpendingintent = PendingIntent.getBroadcast(mcontext.getApplicationContext(), 12345, calintent, 0); am = (AlarmManager)mcontext.getSystemService(Activity.ALARM_SERVICE); am.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 10000, calpendingintent); } ``` My broadcastreceiver class is not being called and Im not sure the "setRepeating()" method Im using is set correctly.. Please help!

Original source