转动设备Android后,警报不会触发通知

时间:2012-11-29 08:17:25

标签: android alarmmanager

在我的应用中,我需要设置闹钟,并在状态栏中显示通知。 我将预定事件存储在数据库中,并在显示通知时删除事件。

当我关闭设备时,再次打开。 基数列表存在,但警报事件永远不会触发。 当我关闭设备时似乎取消了挂起事件。

如何防止这种情况? 我需要在设备开启时显示通知,并且出现警报的时间。

这就是我设置闹钟的方法:

    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类是我的接收器,从那里我在状态栏中显示通知。

任何想法都错了吗?

1 个答案:

答案 0 :(得分:1)

您需要做的就是解决此问题。通常当设备关闭时,它将取消警报的所有pendingIntent,因此在设备再次打开时不会触发。内部警报应用程序在设备关闭/打开时会启动服务以注册事件

参考此链接以在代码中实现关闭和启动意图。因此,当设备上电时,所有事件都安排到AlarmManager,我确信这将起作用

Is there any way to receive a notification when the user powers off the device?

相关问题