我正在创建一个警报应用程序。为此,我正在使用 AlarmManager.AlarmClockInfo 触发广播接收器。一切正常,直到应用程序打开或最小化。但是,一旦我从最近的窗格中删除了该应用程序,警报就不会响起。但是当我在闹钟时间后打开应用程序时,闹钟开始响起。
设置闹钟
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);
广播接收器
@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();
}
显现
<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>
提前致谢。