Служба сигнализации на данное время

1

Мне нужно вызвать будильник в соответствии с значениями времени в БД. Я прошел через множество примеров, но смутил меня. Может ли любой орган помочь установить повторяющийся сигнал тревоги для данного времени, например, 2011-07-03 02: 00: 00: 000. и он должен повториться в течение 5 минут.

Теги:
alarmmanager

2 ответа

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, где ваша логика продолжается, когда происходит тревога.

1

There is no public API for the Calendar application, хотя, поскольку он является родным интерфейсом для Календаря Google, вы можете отправить событие в Календарь Google через свой API-интерфейс GData.

Вы можете использовать класс 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
    Я не уверен в актуальности Calendar API здесь. Служба сигнализации может быть использована с помощью AlarmManager. Нет необходимости в API Календаря
  • 0
    @GSree: спасибо за информацию

Ещё вопросы

Сообщество Overcoder
Наверх
Меню