android – 无法在启动时设置重复警报

我在晚上10:30收到通知.但是当我的设备在晚上10:30关闭然后在我11:00 PM打开我的设备后,我没有收到待处理的通知.所以我不明白问题是什么.任何帮助将不胜感激.

这是我在创建活动中的代码.

Intent alarmIntent = new Intent(CH_Dashboard.this,TimeAlarmEvening.class);

    PendingIntent pendingIntent = PendingIntent.getbroadcast(CH_Dashboard.this,alarmIntent,0);

    AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);

    Calendar firingCal = Calendar.getInstance();
    Calendar currentCal = Calendar.getInstance();

    firingCal.set(Calendar.HOUR,10);
    firingCal.set(Calendar.MINUTE,30);
    firingCal.set(Calendar.SECOND,0);
    firingCal.set(Calendar.AM_PM,Calendar.PM);

    long intendedTime = firingCal.getTimeInMillis();
    long currentTime = currentCal.getTimeInMillis();

    if(intendedTime >= currentTime)
    {
        manager.setRepeating(AlarmManager.RTC,intendedTime,AlarmManager.INTERVAL_DAY,pendingIntent);
    }
    else
    {
        firingCal.add(Calendar.DAY_OF_MONTH,1);
        intendedTime = firingCal.getTimeInMillis();

        manager.setRepeating(AlarmManager.RTC,pendingIntent);
    }

我的接收器代码在此处,并在设备开启时成功获得通知.

Intent notificationIntent = new Intent(context,CH_Dashboard.class);
        notificationIntent.putExtra("fromNotification","notify");
        TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
        stackBuilder.addParentStack(CH_Dashboard.class);
        stackBuilder.addNextIntent(notificationIntent);

        PendingIntent pendingIntent = stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT);

        NotificationCompat.Builder builder = new NotificationCompat.Builder(context);

        builder.setAutoCancel(true);

        Notification notification = builder.setContentTitle("Demo App Notification")
                .setContentText("New Notification From Demo App..")
                .setTicker("New Message Alert!")
                .setSmallIcon(R.mipmap.ic_launcher)
                .setContentIntent(pendingIntent).build();

        notificationmanager notificationmanager = (notificationmanager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        notificationmanager.notify(0,notification);

这是我的Boot接收器代码.

if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED))
    {
     Intent alarmIntent = new Intent(context,TimeAlarmEvening.class);
     PendingIntent pendingIntent = PendingIntent.getbroadcast(context,0);

    AlarmManager manager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);

    Calendar firingCal = Calendar.getInstance();
    Calendar currentCal = Calendar.getInstance();

    firingCal.set(Calendar.HOUR,Calendar.PM);

    long intendedTime = firingCal.getTimeInMillis();
    long currentTime = currentCal.getTimeInMillis();

    if(intendedTime >= currentTime)
    {
        manager.setInexactRepeating(AlarmManager.RTC,1);
        intendedTime = firingCal.getTimeInMillis();

        manager.setInexactRepeating(AlarmManager.RTC,pendingIntent);
    }

  }

最后在清单中我宣布了接收器.

<receiver
        android:name=".model.AutoStart"
        android:enabled="true"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </receiver>

    <receiver android:name=".TimeAlarmEvening">
        <intent-filter>
            <action android:name="android.media.action.disPLAY_NOTIFICATION_EVENING" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </receiver>

解决方法

那天我解决了,但忘了在这里回答.我在清单文件中做了一些更改.只需删除两个意图过滤器中的行类别认值即可.
<receiver
    android:name=".model.AutoStart"
    android:enabled="true"
    android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
</receiver>

<receiver android:name=".TimeAlarmEvening">
    <intent-filter>
        <action android:name="android.media.action.disPLAY_NOTIFICATION_EVENING" />
    </intent-filter>
</receiver>

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...