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!