报警服务给定时间

时间:2011-07-04 04:28:25

标签: android alarmmanager

我需要根据DB中的时间值提示报警。我经历了很多例子,但令我感到困惑。任何机构都可以帮助设置重复警报,如2011-07-03 02:00:00:000。它应该重复5分钟。

2 个答案:

答案 0 :(得分:1)

There is no public API for the Calendar application,虽然它是Google日历的原生用户界面,但您可以通过其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);

答案 1 :(得分:1)

我建议你创建一个服务。该服务可以读取数据库并使用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,您的逻辑会在触发警报时发生。