Reputation: 567
I am trying to set periodically alarm every 30 minutes, but i dont think it is working. I use below code:
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(MyActivity.this, Alarm.class);
PendingIntent alarmIntent = PendingIntent.getBroadcast(MyActivity.this, 0, intent, 0);
long selectedTimeMiliseconds = (long) (TimeUnit.MINUTES.toMillis(30));
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), selectedTimeMiliseconds, alarmIntent);
How to set the second parameter in method setInexactRepeating? Is it better to use setRepeating method?
Upvotes: 1
Views: 1767
Reputation: 1258
Inexact is a save battery method, but it is... inexact.
AlarmManager have a problem, if the device is in sleep mode, the intent not start. You should use WakefulBroadCast.
https://developer.android.com/reference/android/support/v4/content/WakefulBroadcastReceiver.html
Upvotes: 2
Reputation: 24853
Try this..
alarmManager.setRepeating(AlarmManager.RTC, calendar.getTimeInMillis(), selectedTimeMiliseconds, alarmIntent);
Upvotes: 0