Служба сигнализации на данное время - PullRequest
1 голос
/ 04 июля 2011

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

Ответы [ 2 ]

1 голос
/ 04 июля 2011

Предлагаю вам создать сервис. Сервис может читать базу данных и устанавливать будильник с помощью класса 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 голос
/ 04 июля 2011

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