【发布时间】:2017-07-01 18:57:28
【问题描述】:
我正在尝试制作将在特定时间推送一次的离线推送通知。 这是我的日历和 AlarmManager 设置:
Intent intent = new Intent(getApplicationContext(), Notification_receiver.class);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
PendingIntent pendingIntent1 = PendingIntent.getBroadcast(getApplicationContext(), 101, intent, PendingIntent.FLAG_UPDATE_CURRENT);
PendingIntent pendingIntent2 = PendingIntent.getBroadcast(getApplicationContext(), 102, intent, PendingIntent.FLAG_UPDATE_CURRENT);
Calendar push1 = Calendar.getInstance();
Calendar push2 = Calendar.getInstance();
push1.set(2017, Calendar.JULY, 1);
push1.set(Calendar.HOUR_OF_DAY, 20);
push1.set(Calendar.MINUTE, 22);
push1.set(Calendar.SECOND, 30);
push2.set(2017, Calendar.JULY, 1);
push2.set(Calendar.HOUR_OF_DAY, 20);
push2.set(Calendar.MINUTE, 28);
push2.set(Calendar.SECOND, 30);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, push1.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent1);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, push2.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent2);
还有我的通知类:
public class Notification_receiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
Intent repeating_intent = new Intent(context, RepeatingActivity.class);
repeating_intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent1 = PendingIntent.getActivity(context, 101, repeating_intent, PendingIntent.FLAG_UPDATE_CURRENT);
PendingIntent pendingIntent2 = PendingIntent.getActivity(context, 102, repeating_intent, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder builder1 = new NotificationCompat.Builder(context).setContentIntent(pendingIntent1)
.setSmallIcon(R.drawable.onusicijadi_icon)
.setContentTitle("FIRST")
.setContentText("FIRST NOTIFICATION")
.setDefaults(Notification.DEFAULT_ALL)
.setAutoCancel(true);
notificationManager.notify(103, builder1.build());
NotificationCompat.Builder builder2 = new NotificationCompat.Builder(context).setContentIntent(pendingIntent2)
.setSmallIcon(R.drawable.onusicijadi_icon)
.setContentTitle("SECOND")
.setContentText("SECOND NOTIFICATION")
.setDefaults(Notification.DEFAULT_ALL)
.setAutoCancel(true);
notificationManager.notify(104, builder2.build());
}}
RepeatingActivity.class 只是:
public class RepeatingActivity extends AppCompatActivity{
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_program);
}
这段代码在 20:22 和 20:28 发送两个通知,显然我希望它分开。例如,一个通知在 20:22 开始,另一个通知在 20:28 开始。 在为期 3 天的节日期间,我需要为每个活动发送大约 30 条通知。
【问题讨论】:
标签: java android notifications