I scheduled alarm manager for every 5 minutes, it's working fine for me but when I restart my device then alarm manager triggered only 1st time after that for every 5 minutes alarm manager not triggered.
In MainActivity :
int DATA_FETCHER_RC = 123;
AlarmManager mAlarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, Receiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, DATA_FETCHER_RC, intent, PendingIntent.FLAG_UPDATE_CURRENT);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
int interval = 5 * 60 * 1000;
int hourOfDay = calendar.get(Calendar.HOUR_OF_DAY);
int minofday = calendar.get(Calendar.MINUTE);
calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
calendar.set(Calendar.MINUTE, minofday + 1);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND,0);
mAlarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), interval, pendingIntent);
In Receiver.Class :
public class Receiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Alaram Started", Toast.LENGTH_LONG).show();
}
}
AndroidManifest.xml as follows :
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".Receiver" android:enabled="true" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>