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

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

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

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

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

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

P.S. делал через сервис, но и он засыпает...
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2013, 17:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос AlarmManager не срабатывает, когда телефон засыпает (Программирование Android):

Alarmmanager срабатывает позже назначенного времени - Программирование Android
Столкнулся со следующей проблемой. Запланирована задача, задача срабатывает не сразу в указанное время, а позже секунд на 10-20. В чем...

Не срабатывает AlarmManager после выключения экрана - Программирование Android
Доброго дня! Прошу помощи. Приложение выполняет отложенные задачи через AlarmManager. Все отлично работает, но пока приложение запущено...

FCM: не срабатывает onMessageReceived когда приложение прибито - Программирование Android
Здравствуйте. Столкнулся с проблемой -- не срабатывает onMessageReceived когда приложение закрыто. Когда в foreground, background -- все...

AlarmManager - Программирование Android
Добрый вечер, как задать время вручную ? alarmManager.set(AlarmManager.RTC, System.currentTimeMillis(), pendingIntent);

AlarmManager - Программирование Android
Всем привет. Взял код AlarmManager отсюда. В свой проект добавил AlarmManagerBroadcastReceiver.java и код AlarmManagerActivity.java в свое...

AlarmManager и TextView - Программирование Android
Здравствуйте. Задача такая: есть AlarmManager и TextView. Как заставить AlarmManager отсчитывать время, заданное пользователем, и...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
YuraAAA
1574 / 1316 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
16.04.2013, 17:54 #2
Используйте BroadcastReceiver, а не Service
0
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
16.04.2013, 18:00  [ТС] #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);
    }


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

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

Добавлено через 8 минут
Цитата Сообщение от dubok79 Посмотреть сообщение
Что значит не пойдет?
Как я писал выше могу ошибать поэтому проверь если не будет работать используй setInexactRepeating или setRepeating. А отлючать будешь используя cancel.
1
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
16.04.2013, 18:19  [ТС] #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);
    }
но по ходу не получается или я отключаю, что то не то
0
c4sp3r
0x5B4C322291BD52AE
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
16.04.2013, 18:55 #10
dubok79, таких явных ошибок не вижу вот тебе подсказка:

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

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

AlarmManager.setWindow - Программирование Android
Здравствуйте. Сделал alarmManager.setWindow(AlarmManager.RTC, calendar2.getTimeInMillis(), calendar2.getTimeInMillis(), ...

AlarmManager описание - Программирование Android
Здравствуйте. Подскажите хороший гайд по работе AlarmManager. А то в основном примеры толком не работающие.

AlarmManager + Notification - Программирование Android
Взялся за создания Нотификаций в определённое время. До этого такого ещё такого не делал, без помощи гугла не обошлось. В фрагменте...

Не работает AlarmManager - Программирование Android
Суть проблемы в том что когда заеться время уведомления в это время нет.... Тут код есть...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
16.04.2013, 21:09
Ответ Создать тему
Опции темы

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