警报在到期时正确接收,但在随后打开应用程序时第二次错误接收

cunj1qz1  于 2021-07-03  发布在  Java
关注(0)|答案(0)|浏览(141)

通过使用日历类java(例如9:15am),我可以在将来的特定时间获得通知。每当时间是上午9:15,但当我在上午9:15之后打开应用程序时(例如上午9:20),alarm manager就会将广播发送到广播接收器。我收到了同样的通知。有人能帮我解决这个问题吗。
我的舱单

<receiver android:name=".others.NotificationReceiver"/>

通知接收者.java

public class NotificationReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        createNotification(context);
    }

    private void createNotification(Context context) {
        NotificationManager notificationManager = context.getSystemService(NotificationManager.class);
        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
        {
            NotificationChannel linkChannel = new NotificationChannel(link_channel_id, "Link Channel", NotificationManager.IMPORTANCE_HIGH);
            linkChannel.setDescription("This channel is used to show Zoom Links");
            notificationManager.createNotificationChannel(linkChannel);
        }

        Notification notification = new NotificationCompat.Builder(context, link_channel_id)
                .setSmallIcon(R.mipmap.ic_launcher_foreground)
                .setContentTitle("Test Notification")
                .setContentText("This is a test notification")
                .setPriority(NotificationCompat.PRIORITY_MAX)
                .setCategory(NotificationCompat.CATEGORY_MESSAGE)
                .build();

        notificationManager.notify(1, notification);
    }
}

我的闹钟管理器

AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
        Calendar calendar = Calendar.getInstance();

        calendar.set(Calendar.HOUR_OF_DAY, 9);
        calendar.set(Calendar.MINUTE, 10);
        calendar.set(Calendar.SECOND, 0);
        Intent myIntent1 = new Intent(this, NotificationReceiver.class);
        myIntent1.setAction(ACTION_ONE);
        PendingIntent pendingIntent1 = PendingIntent.getBroadcast(this, 1, myIntent1, PendingIntent.FLAG_UPDATE_CURRENT);
        alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent1);

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题