我有一个名为“createAlarms()”的方法,它在初始应用程序设置中设置特定时间的警报。在运行此警报时,它会创建一个通知,我正在使用广播接收器类创建该通知。
public void createAlarms() {
cal = Calendar.getInstance();
cal.add(Calendar.HOUR, alarmintervalint);
calintent = new Intent(this, AlarmBroadcastReceiver.class);
calpendingintent = PendingIntent.getBroadcast(this.getApplicationContext(), 12345, calintent, 0);
am = (AlarmManager)getSystemService(Activity.ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, alarmintervalint, calpendingintent);
}
我希望这个警报重复每个“alarmintervalint”时间段。我可以通过使用“am.setRepeating()”函数来做到这一点,但我的问题要复杂一些。发送一定数量的警报后(如50。将由程序计算),我希望所有的值都改变,这样alarmintervalint就会改变。
private void showNotification(Context context) {
PendingIntent notifpi = PendingIntent.getActivity(context, 0, new Intent(context, Main.class), 0);
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("Hello!")
.setContentText("Welcome!")
.addAction(R.drawable.ic_launcher, "Open App", notifpi);
mBuilder.setContentIntent(notifpi);
mBuilder.setDefaults(Notification.DEFAULT_SOUND);
mBuilder.setAutoCancel(true);
NotificationManager mNotificationManager =
(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(1, mBuilder.build());
System.out.println("6");
}
例如,现在,每 2 小时响一次警报,我每 2 小时收到一次通知。收到 50 条通知后,我想将闹钟设置为 3 小时后响起。在 50 次通知之后,再次将其设为 4 小时。(这只是一个例子,它会更复杂一些。
我该怎么做?现在我认为在我的广播接收器类中有某种计数器,当计数器达到 50(在本例中)后,它将调用 createAlarms() 类并更改时间和内容。这行得通吗?