android - 每天在特定时间发送应用通知
问题描述
我正在开发一个 android 应用程序,我想在每天 14:30 发送通知。我能够按时收到通知,但我的问题是,每当我在 14:30 之后打开应用程序时,我每次都会收到通知。如何解决?发送通知的代码在这里......!
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 14);
calendar.set(Calendar.MINUTE, 30);
Intent intent = new Intent(getApplicationContext(), TimeAlarm.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 100,intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
TimeAlarm.class的代码是....
NotificationManager manager = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE);
Intent repeating_intent = new Intent(context, MainActivity.class);
repeating_intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 100, repeating_intent, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
.setContentIntent(pendingIntent)
.setSmallIcon(android.R.drawable.ic_btn_speak_now)
.setContentTitle("Title")
.setContentText("Text")
.setAutoCancel(true);
manager.notify(100,builder.build());
解决方案
尝试这个:
NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
.setContentIntent(pendingIntent)
.setSmallIcon(android.R.drawable.ic_btn_speak_now)
.setContentTitle("Title")
.setContentText("Text")
.setOngoing(false)
.setWhen(calendar.getTimeInMillis());
.setAutoCancel(true);
manager.notify(100,builder.build());
NotificationCompat.Builder setWhen (long when)
设置事件发生的时间。面板中的通知按此时间排序。
你甚至可以尝试setShowWhen
控制使用 setWhen 设置的时间戳是否显示在内容视图中。
推荐阅读
- magento - Magento 导航栏上传到服务器后没有出现
- oracle - 如何在 SQL 触发器的 INTO 部分添加额外的列
- flutter - Flutter 中的刷新令牌
- postgis - 如何从实际上在 Postgis 中的多边形内的多边形中获取最近点
- r - 删除ggplot中中断之间的刻度
- android - 我怎样才能找到这个错误的原因?我们检测到您的应用正在使用旧版本的 Google Play 开发者 API
- javascript - CSS JQuery在容器内旋转图像
- python - 为什么 matplotlib .plot(kind='bar') 绘图与 .plot() 如此不同
- python - 如果任何行包含特定字符串,则选择列
- java - 为什么 log4j 日志记录重定向到 Weblogic 上部署的 webapp 中的 stderr?