我对以提醒的形式向我的应用程序添加通知很感兴趣。
我已经查看了通知,但我还没有找到一种在应用程序不打开的情况下做到这一点的方法。
例如,我想添加一个时间设置,它将以天为单位存储发送通知的时间。
然后,每天(或w\e),在给定的时间,我希望用户收到一个通知,他可以单击该通知进入应用程序。
它是如何做到的?
发布于 2016-04-05 00:29:05
您需要编写一个基于AlarmManager的程序来调度应用程序的调用,然后使用NotificationCompat.Builder向UI发送本地通知
看看下面的链接,它会让你轻松上手。
http://developer.android.com/training/scheduling/alarms.html
发布于 2016-04-05 01:07:05
更好的是,您可能想研究一下GCMNetworkManager,这是另一种在特定时间调度任务的好方法。
无论是警报还是其他预定事件的发生,都不需要应用程序运行。用于生成定时事件以触发通知的不同选项很少。
下面是一个示例,您可以将PendingIntent设置为启动通知:
private void setAlarm() {
final AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
final Intent i = new Intent(this, MyNotifService.class);
final PendingIntent pi = PendingIntent.getService(this, 0, i, 0);
am.cancel(pi);
final Calendar cal = Calendar.getInstance();
final String notifTime = prefs.getString("notif_time", "07:30");
final String[] times = notifTime.split(":");
final int hour = Integer.parseInt(times[0]);
final int min = Integer.parseInt(times[1]);
cal.set(Calendar.HOUR_OF_DAY, hour);
cal.set(Calendar.MINUTE, min);
am.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
AlarmManager.INTERVAL_DAY, pi);
}https://stackoverflow.com/questions/36407702
复制相似问题