在我的应用中,我需要设置闹钟,并在状态栏中显示通知。 我将预定事件存储在数据库中,并在显示通知时删除事件。
当我关闭设备时,再次打开。 基数列表存在,但警报事件永远不会触发。 当我关闭设备时似乎取消了挂起事件。
如何防止这种情况? 我需要在设备开启时显示通知,并且出现警报的时间。
这就是我设置闹钟的方法:
Intent intent = new Intent(activity, TimeAlarm.class);
intent.putExtra(SHOW_NAME, showName);
intent.putExtra(SHOW_START_TIME, showStartTime);
intent.putExtra(CHANNEL_NAME, channelName);
intent.putExtra(VIBRATION_ENABLED, isVibrate);
intent.putExtra(SOUND_ENABLED, isSound);
int alarmId = (int) System.currentTimeMillis();
intent.putExtra(ALARM_ID, alarmId);
PendingIntent pendingIntent = PendingIntent.getBroadcast(activity,
alarmId, intent, PendingIntent.FLAG_ONE_SHOT);
am.set(AlarmManager.RTC_WAKEUP,
System.currentTimeMillis() + delayMilis, pendingIntent);
在Manifest文件中我只有这个:
<receiver
android:name="com.moleandroid.tvprogramgui.alarm.TimeAlarm"
/receiver>
TimeAlarm类是我的接收器,从那里我在状态栏中显示通知。
任何想法都错了吗?
答案 0 :(得分:1)
您需要做的就是解决此问题。通常当设备关闭时,它将取消警报的所有pendingIntent,因此在设备再次打开时不会触发。内部警报应用程序在设备关闭/打开时会启动服务以注册事件
参考此链接以在代码中实现关闭和启动意图。因此,当设备上电时,所有事件都安排到AlarmManager,我确信这将起作用
Is there any way to receive a notification when the user powers off the device?