0

我是 android 编程新手,我正在开发提醒应用程序。现在,我已经将包括日期和时间在内的所有信息存储到 SQLlite 数据库中。我的问题是如何将存储在数据库中的警报与 android 上的当前时间相匹配

4

3 回答 3

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
 }
 }
于 2013-02-06T10:03:58.307 回答
1

您需要做的是首先创建您需要安排的意图。然后获取该意图的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 选项)。您可以阅读完整的示例代码调度活动、服务和广播#Android

于 2013-02-06T10:04:05.023 回答
1

或倒计时而不是使用日历或相对电话时间..自己做了一个类似的应用程序,它似乎减少了由于电话时间关闭或重置等而导致的可变性......

于 2013-02-06T10:39:45.163 回答