0

我几乎到处都看过!我找不到任何帮助或教程或每周、每小时或每月触发通知的示例。我听说了一些关于使用 AlarmManager 的事情,但我无法让它工作。

我没有过多地使用 Java(更像是一个 Objective-c 人),但我在使用这个通知系统时遇到了一些问题。基本上我只想有一个按钮,当我打开时会每周通知用户重新打开应用程序(例如)。当然,当他们不想每周都收到“打开应用程序”的通知时,就会触发。无论如何,有什么想法吗?我已经想出了如何让通知出现,但我不能让它延迟,或者在应用程序未打开时发生。

谢谢!

4

2 回答 2

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);

您必须将其写在您从警报管理器调用的活动上。这将向您显示通知。

您还可以设置待定意图,当用户单击通知时将调用该意图。

于 2012-07-04T07:06:01.247 回答
0

实际上,您需要查看AlarmManager类,尤其是它的setRepeating()方法。它允许您设置触发操作的时间间隔。希望这可以帮助。

于 2012-07-04T06:56:56.083 回答