警报管理员无法处理已关闭的应用

时间:2017-09-09 14:25:19

标签: android alarmmanager

我尝试使用AlarmManager设置活动,但我只是在应用程序打开时收到通知。我尝试使用setsetExactsetExactAndAllowWhileIdle,但没有运气:当我关闭应用时,即使我没有关闭屏幕,我也不会得到通知。

添加通知

    public void addNotification(Task task) {

    Intent intent = new Intent(context, NotificationPublisher.class);
    intent.putExtra("NOTIFICATION",getNotification(task));
    intent.putExtra("TASK_ID",(int)task.getTaskId());
    PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);


    if(DateUtility.isTimePast(new Time(task.getNotificationTime()))) // if missed, notify now
        mAlarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, today.getTime()+3000, pendingIntent);
    else
        mAlarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, task.getNotificationTime(), pendingIntent);
}

通知发布者,由警报管理员调用

public class NotificationPublisher extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {

    NotificationManager notificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);

    Notification notification = intent.getParcelableExtra("NOTIFICATION");
    int id = intent.getIntExtra("TASK_ID", 0);
    if(notification!=null&&id!=0)
        notificationManager.notify(id, notification);

    }
}

我的自定义课程或方法并不涉及,因为我的应用尚未关闭时,我会收到正确的通知。

我在启动时再次使用RECEIVE_BOOT_COMPLETED设置闹钟,通知我只有迟到的通知(如果我的手机在活动期间关闭,我会在下次启动时收到通知)。因此警报设置正确,但几秒钟后它就会死亡。谢谢你的帮助!

0 个答案:

没有答案