0

我正在创建一个警报应用程序。为此,我正在使用 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>

提前致谢。

4

0 回答 0