【问题标题】:Alarm service for given time定时报警服务
【发布时间】:2011-07-04 04:28:24
【问题描述】:

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

【问题讨论】:

    标签: android alarmmanager


    【解决方案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,您的逻辑会在触发警报时发生什么。

    【讨论】:

      【解决方案2】:

      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);
      

      【讨论】:

      • 我不确定 Calendar API 的相关性。可以使用 AlarmManager 使用警报服务。无需日历 API
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-18
      • 2022-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多