Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 30, средняя оценка - 4.77
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
#1

AlarmManager не срабатывает, когда телефон засыпает - Программирование Android

16.04.2013, 17:37. Просмотров 3892. Ответов 15
Метки нет (Все метки)

Использую AlarmManager. Все работает хорошо, но когда телефон не спит. Стоит ему уснуть и процесс не выполнится. Подскажите в какую сторону копать. Нужен механизм что-то вроде будильника...
Заранее спасибо...

P.S. делал через сервис, но и он засыпает...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2013, 17:37     AlarmManager не срабатывает, когда телефон засыпает
Посмотрите здесь:
Не срабатывает AlarmManager после выключения экрана Android
AlarmManager Android
Android AlarmManager
Android AlarmManager + Notification
Не работает AlarmManager Android
Android AlarmManager и TextView
Android AlarmManager после перезагрузки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
1566 / 1308 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
16.04.2013, 17:54     AlarmManager не срабатывает, когда телефон засыпает #2
Используйте BroadcastReceiver, а не Service
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
16.04.2013, 18:00  [ТС]     AlarmManager не срабатывает, когда телефон засыпает #3
У меня есть свой класс наследованный от
Кликните здесь для просмотра всего текста

Java
1
2
3
4
5
6
public class MyAlarmReceiver extends BroadcastReceiver { 
    @Override
    public void onReceive(Context context, Intent intent) {     
    ...
    }
}

Этот рессивер зарегистрирован в манифесте (слышал, что это не хорошо, но пока так)

И есть класс в котором есть метод установки alarm-a
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
    public void set_alarm(){
        alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
        intent = new Intent(context, MyAlarmReceiver.class);
        Uri data = Uri.withAppendedPath(Uri.parse(PreferencesConst.URI_SCHEME+"://myclass/id/"),String.valueOf(id));
        intent.setData(data);
        pi = PendingIntent.getBroadcast(context, 0, intent, 0);
        alarmMgr.set(AlarmManager.RTC, getTime().getTimeInMillis(), pi);
    }


Что я не так делаю?
c4sp3r
0x5B4C322291BD52AE
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
16.04.2013, 18:00     AlarmManager не срабатывает, когда телефон засыпает #4
dubok79, RTC_WAKEUP

http://developer.android.com/referen...tml#RTC_WAKEUP
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
16.04.2013, 18:02  [ТС]     AlarmManager не срабатывает, когда телефон засыпает #5
Цитата Сообщение от c4sp3r Посмотреть сообщение
dubok79, RTC_WAKEUP
А разве телефон не проснется? Или он и должен просыпаться? Я в том смысле, что экран не обязательно включится в этом случае? А то меня съедят пользователи....
c4sp3r
0x5B4C322291BD52AE
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
16.04.2013, 18:05     AlarmManager не срабатывает, когда телефон засыпает #6
И еще alarmMgr.set насколько помню не пойдет но могу ошибаться.
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
16.04.2013, 18:07  [ТС]     AlarmManager не срабатывает, когда телефон засыпает #7
Цитата Сообщение от c4sp3r Посмотреть сообщение
И еще alarmMgr.set насколько помню не пойдет но могу ошибаться.
Что значит не пойдет?
c4sp3r
0x5B4C322291BD52AE
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
16.04.2013, 18:16     AlarmManager не срабатывает, когда телефон засыпает #8
dubok79, насколько я помню экран при этом не включается просто я уже давно свой будильник писал и не помню всех подробностей.

Добавлено через 8 минут
Цитата Сообщение от dubok79 Посмотреть сообщение
Что значит не пойдет?
Как я писал выше могу ошибать поэтому проверь если не будет работать используй setInexactRepeating или setRepeating. А отлючать будешь используя cancel.
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
16.04.2013, 18:19  [ТС]     AlarmManager не срабатывает, когда телефон засыпает #9
Цитата Сообщение от c4sp3r Посмотреть сообщение
А отлючать будешь используя cancel.
Кстати на счет отключения. Отключаю так:
Java
1
2
3
4
5
6
    public void del_alarm(){
        alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
        intent = new Intent(context, MyAlarmReceiver.class);
        pi = PendingIntent.getBroadcast(context, 0, intent, 0);
        alarmMgr.cancel(pi);
    }
но по ходу не получается или я отключаю, что то не то
c4sp3r
0x5B4C322291BD52AE
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
16.04.2013, 18:55     AlarmManager не срабатывает, когда телефон засыпает #10
dubok79, таких явных ошибок не вижу вот тебе подсказка:

Код
adb shell dumpsys alarm
выведет список всех запланированных алармов (заданий) среди них должен быть твой (имя пакета) также там будет указано оставшееся время до срабатывания и после вызова cancel твой alarm соответственно должен быть удален из этого списка.

P.S. делал через сервис, но и он засыпает...
чтобы сервис не спал нужно использовать PowerManager другого способа я не знаю.
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
16.04.2013, 19:01  [ТС]     AlarmManager не срабатывает, когда телефон засыпает #11
Цитата Сообщение от c4sp3r Посмотреть сообщение
выведет список всех запланированных алармов
Да видел этот список много раз. Может действительно RPC_WAKEUP сейчас потестирую
c4sp3r
0x5B4C322291BD52AE
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
16.04.2013, 19:08     AlarmManager не срабатывает, когда телефон засыпает #12
Цитата Сообщение от dubok79 Посмотреть сообщение
Может действительно RPC_WAKEUP сейчас потестирую
В твоем случае только RTC_WAKEUP или ELAPSED_REALTIME_WAKEUP.
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
16.04.2013, 19:12  [ТС]     AlarmManager не срабатывает, когда телефон засыпает #13
Да, список вывел, спасибо. Нашел все алармы.
Вопрос такой еще: аларм я использую для выдачи уведомлений. Эти уведомления запускаются от разных виджетов (те что на рабочем столе). Вижу что алармов много, а виджетов уже нет, они удалены, т.е. при удалении надо останавливать аларм. Как остановить именно тот, что вызвал виджет?
c4sp3r
0x5B4C322291BD52AE
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
16.04.2013, 19:56     AlarmManager не срабатывает, когда телефон засыпает #14
dubok79, а вот с виджетами не знаю я еще не пробовал их писать и про их Lifecycle нечего не знаю. У меня был сервис который работал в фоне даже если устройство спит и активити с Toggle Button если юзер отключает посылал cancel а сам сервис работал по расписанию и если время подошло тоже посылал cancel.
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
16.04.2013, 21:09  [ТС]     AlarmManager не срабатывает, когда телефон засыпает #15
c4sp3r, спасибо еще раз. Все работает как надо. Это все мой ломаный английский виноват
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.09.2013, 07:40     AlarmManager не срабатывает, когда телефон засыпает
Еще ссылки по теме:
AlarmManager несколько расписаний Android
Android AlarmManager работает ли? Состояние
Обновление приложения и AlarmManager Android
Android AlarmManager и Service or Receiver?
Таймер, AlarmManager и Service на Android Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
25.09.2013, 07:40  [ТС]     AlarmManager не срабатывает, когда телефон засыпает #16
Вернусь к этой теме. Недавно увидел, что все будильники убиваются после перезагрузки устройства. Каким образом их можно восстановить? Сервисом или лучше рессивер на запуск создать и пересоздать собственные будильники?
И еще такой момент, есть ряд программ которые чистят память и убивают различные приложения работающие в фоне. Все хорошо, но почему они убивают будильники?? Как это обойти? Спасибо.
Yandex
Объявления
25.09.2013, 07:40     AlarmManager не срабатывает, когда телефон засыпает
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru