我是Android编程的新手,我正在研究提醒应用程序。现在,我已经将包括日期和时间在内的所有信息存储到SQLlite数据库中。我的问题是我如何匹配存储在数据库中的警报与android上的当前时间
答案 0 :(得分:1)
查询与日历比较的数据库
Calendar c = Calendar.getInstance();
c.set(Calendar.MONTH, Calendar.MARCH);
c.set(Calendar.DAY_OF_MONTH, 3);
long time2= c.getTimeInMillis();
c.set(Calendar.MONTH, Calendar.AUGUST);
c.set(Calendar.DAY_OF_MONTH, 8);
long time3= c.getTimeInMillis();
if(time>time2){
//Logic
if(time>time3){
//Logic
}
}
答案 1 :(得分:1)
您需要做的是首先创建您需要安排的意图。然后获取该intent的pendingIntent。您可以安排活动,服务和广播。安排活动,例如MyActivity:
Intent i = new Intent(getApplicationContext(), MyActivity.class);
PendingIntent pi = PendingIntent.getActivity(getApplicationContext(),3333,i,
PendingIntent.FLAG_CANCEL_CURRENT);
将此pendingIntent提供给alarmManager:
//getting current time and add 5 seconds in it
Calendar cal = Calendar.getInstance();
cal.add(Calendar.SECOND, 5);
//registering our pending intent with alarmmanager
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP,cal.getTimeInMillis(), pi);
现在MyActivity将在应用程序启动5秒后启动,无论您停止应用程序还是设备进入睡眠状态(由于RTC_WAKEUP选项)。您可以阅读完整的示例代码Scheduling activities, services and broadcasts #Android
答案 2 :(得分:1)
或倒计时秒而不是使用日历或相对手机时间..我自己做了一个类似的应用程序,它似乎减少了由于电话时间关闭或重置等的可变性...