2016-07-28 7 views
1

Итак, у меня есть Сервис, который я хочу, чтобы иметь возможность прослушивать сигналы тревоги и временно закрывать себя/паузу, пока звучит сигнал тревоги, а затем возобновляется после этого. То, что делает моя Служба, заключается в том, что она раздувает представление, используя WindowManager поверх экрана - это приложение для блокировки экрана. Но как таковое, оно всегда находится поверх всего остального.Приостановка службы во время тревоги, возобновление ее после этого

Этого было достаточно легко реализовать для входящих звонит с помощью PhoneStateListener, но я не видел ничего такого, что было бы удобно для аварийных сигналов - я предполагаю, что смогу реализовать AlarmManager.onAlarmListener, который отключает мою службу после того, как будильник подаст сигнал, но я не уверен, как я снова включу его после этого.

Благодарен за любую помощь!

ответ

1

Наконец понял это!

Вы можете получить время следующей тревоги так:

AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
    alarmManager.getNextAlarmClock().getTriggerTime() 

Так просто добавить это к вашим услугам OnCreate метод:

AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
     if (alarmManager.getNextAlarmClock() != null) { 
      UIHandler.postAtTime(new Runnable() { 
       @Override 
       public void run() { 
        stopSelf(); 
       } 
      }, alarmManager.getNextAlarmClock().getTriggerTime()); 
     } 

По существу, что он делает это, чтобы получить время ваш следующий сигнал тревоги в миллисекундах, а затем отправьте runnable во время следующего аварийного сигнала.

Я полагаю, что он будет работать только на API 21+

 Смежные вопросы

  • Нет связанных вопросов^_^