我几乎无处不在!我找不到任何帮助或教程或每周,每小时或每月发出通知触发器的示例。我听说过一些关于使用AlarmManager的事情,但我无法让它工作。
我没有使用过多Java(更像是一个客观的人),但我在使用这个通知系统时遇到了一些麻烦。基本上我只想要一个按钮,当我打开时会每周通知用户重新打开应用程序(例如)。并且当他们不希望每周都被通知“打开应用程序”时触发。无论如何,任何想法?我已经弄清楚如何获得一般性的通知,但我不能让它延迟,或者在应用程序未打开时发生。
谢谢!
答案 0 :(得分:3)
Calendar calendar = Calendar.getInstance();
// 8 AM Each day
calendar.set(Calendar.HOUR_OF_DAY, 8);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
PendingIntent pi = PendingIntent.getService(context, 0, new Intent(context, MyClass.class), PendingIntent.FLAG_UPDATE_CURRENT);
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pi);
这将在每天早上8点发出警报。同样,您可以为自己喜欢的任何一天设置闹钟。
获取通知:
NotificationManager nm;
nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
CharSequence from = "VIPUL";
CharSequence message = "Crazy About Android...";
PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
new Intent(), 0);
Notification notif = new Notification(R.drawable.icon,
"Crazy About Android...", System.currentTimeMillis());
notif.setLatestEventInfo(context, from, message, contentIntent);
nm.notify(1, notif);
您必须在从警报管理器调用的活动上写下此内容。这将显示通知。
您还可以设置在用户点击通知时调用的待处理意图。
答案 1 :(得分:0)
确实,您需要查看AlarmManager类,尤其是setRepeating()方法。它允许您设置触发操作的间隔。希望这会有所帮助。