【发布时间】:2011-07-04 04:28:24
【问题描述】:
我需要根据数据库中的时间值来提示警报。我遇到了很多例子,但让我感到困惑。任何机构都可以帮助设置给定时间的重复警报,例如 2011-07-03 02:00:00:000 。它应该重复 5 分钟。
【问题讨论】:
标签: android alarmmanager
我需要根据数据库中的时间值来提示警报。我遇到了很多例子,但让我感到困惑。任何机构都可以帮助设置给定时间的重复警报,例如 2011-07-03 02:00:00:000 。它应该重复 5 分钟。
【问题讨论】:
标签: android alarmmanager
我建议你创建一个服务。该服务可以读取数据库并使用 AlarmManager 类设置警报。您可以根据您的使用情况使用 AlarmManager 的 set() 或 setRepeating() 方法。 http://developer.android.com/reference/android/app/AlarmManager.html#set%28int,%20long,%20android.app.PendingIntent%29
这里是 AlarmManager 使用示例。
long triggerAtTime = SystemClock.elapsedRealtime() + triggerAfterTime;
AlarmManager mgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, YourAlarmReceiver.class);
PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, 0);
mgr.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerAtTime, pi);
YourAlarmReceiver 类(通常)可以是一个 BroadcastReceiver,您的逻辑会在触发警报时发生什么。
【讨论】:
There is no public API for the Calendar application,尽管它是 Google 日历的原生 UI,您可以通过其 GData API 将事件推送到 Google 日历。
您可以使用 AlarmManager 类
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 10);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
【讨论】: