I am creating an alarm app. For this I am firing a broadcast receiver using AlarmManager.AlarmClockInfo. Everything works fine till the app is open or is minimized. But once i remove the app from recent pane, alarm does not ring. But when i open the app after alarm time, alarm starts ringing.
Setting alarm
Intent receiver_intent = new Intent("iris.jaagore.sabita_sant.alarm.START_ALARM");
receiver_intent.putExtra(Constants.ALARM_ID_KEY, alarmID);
pendingIntent = PendingIntent.getBroadcast(context, alarmID,
receiver_intent, PendingIntent.FLAG_IMMUTABLE);
AlarmManager.AlarmClockInfo ac= new
AlarmManager.AlarmClockInfo(ALARM_TIME, pendingIntent);
alarmManager.setAlarmClock(ac, pendingIntent);
Broadcast receiver
@Override
public void onReceive(Context context, Intent intent) {
PowerManager powerManager =(PowerManager)context.getSystemService(POWER_SERVICE);
PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,"MyApp::MyWakelockTag");
wakeLock.acquire()
int id = intent.getIntExtra(Constants.ALARM_ID_KEY, 0);
Intent i = new Intent();
i.putExtra(Constants.ALARM_ID_KEY,id);
i.setClass(context, AlarmScreen.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
wakeLock.release();
}
Manifest
<receiver
android:name=".logic.AlarmReceiver
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="iris.jaagore.sabita_sant.alarm.START_ALARM"/>
</intent-filter>
</receiver>
Thanks in advance.