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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
sjoiton
0 / 0 / 0
Регистрация: 03.12.2014
Сообщений: 5
#1

В спящем режиме останавливаются таймеры - Программирование Android

03.12.2014, 01:25. Просмотров 1807. Ответов 22
Метки нет (Все метки)

Использую такой код:
Java
1
2
3
4
5
6
7
8
9
10
class TimerTaskLoad extends TimerTask {
    @Override
     public void run() {
         Log.i("info", "timer");
    }
}
Timer timer = new Timer();
 
TimerTaskLoad timerTask = new TimerTaskLoad();
timer.schedule(timerTask, 0, 2 * 1000);
Когда в Activity вызывается onPause(или спящий режим в телефоне), то таймеры останавливаются. После onResume снова запускаются. Возможно ли сделать так, чтобы таймеры работали в спящем режиме?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2014, 01:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос В спящем режиме останавливаются таймеры (Программирование Android):

Android 4.0.4 Не работает WI-FI в спящем режиме - Android
Планшет Digma iDs10 Android 4.0.4 надоел, решил отдать теще в основном для Skype, но вот проблема WI-FI не хочет работать в спящем режиме....

В спящем режиме возобновляется работа - Ноутбуки
Здравствуйте! Возникла такая проблема: перевожу ноутбук в спящий режим (просто закрываю) а ночью он сам по себе возобновляет работу и так...

Выполнение процесса в спящем режиме - Windows 7
вот к примеру, я закрыл крышку ноутбука и мне надо чтобы процесс продолжался как бы энергия бралась от аккумулятора, но ноутбук "как бы "...

Частота процессора в спящем режиме. - Процессоры
Такой вопросик. У меня (ну это вообще стандартное поведение) если на процессор нет нагрузки, то он снижает тактовую частоту (за щёт...

Windows 8.1 выключается в спящем режиме - Windows 8, 8.1
Здравствуйте. У меня проблема со спящим режимом. Компьютер полностью выключается в спящем. Т.е. полностью питание пропадает. Раньше в...

Утечка оперативной памяти в спящем режиме - Windows 8, 8.1
Есть планшет Onda V820w на Win 8.1. Время от времени оставляю включённым на ночь для зарядки, а при выводе из спящего режима утром через...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
dajver
408 / 272 / 18
Регистрация: 18.09.2010
Сообщений: 1,108
03.12.2014, 12:00 #2
Засунуть его в сервис или бродкаст и тогда будет работать в спящем режиме... да он всегда будет тогда работать...
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
03.12.2014, 22:27 #3
используйте AlarmManager и не придется городить сервисы
sjoiton
0 / 0 / 0
Регистрация: 03.12.2014
Сообщений: 5
06.12.2014, 11:35  [ТС] #4
Засунуть его в сервис или бродкаст и тогда будет работать в спящем режиме... да он всегда будет тогда работать...
Этот таймер итак находится в сервисе, тот в свою очередь в броадкаст. Это не работает в спящем режиме.
используйте AlarmManager и не придется городить сервисы
Мне нужно каждые 30 секунд выполнять код. Использовать AlarmManager думаю для этого не рационально.
Если я буду использовать AlarmManager, сколько телефон будет "не" в спящем режиме, после того как выполнится alarm?
dajver
408 / 272 / 18
Регистрация: 18.09.2010
Сообщений: 1,108
06.12.2014, 12:36 #5
Мне нужно каждые 30 секунд выполнять код.
Ну и зачем вам тут таймер? Сделайте бродкаст с задержкой в 30 секунд и будет вам счасте
sjoiton
0 / 0 / 0
Регистрация: 03.12.2014
Сообщений: 5
06.12.2014, 13:19  [ТС] #6
Сделайте бродкаст с задержкой в 30 секунд и будет вам счасте
С какой еще задержкой?
dajver
408 / 272 / 18
Регистрация: 18.09.2010
Сообщений: 1,108
06.12.2014, 13:36 #7
http://www.sitepoint.com/scheduling-...tasks-android/
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
06.12.2014, 16:49 #8
sjoiton, я вам сразу предложил использовать AlarmManager
sjoiton
0 / 0 / 0
Регистрация: 03.12.2014
Сообщений: 5
07.12.2014, 16:52  [ТС] #9
dajver, вы видимо не понимаете, что когда alarmManager вызывает Broadcast, это не значит, что он будет работать вечно. Если телефон уйдет в спящий режим, broadcast и сервисы перестают работать, нужно удерживать телефон не в спящем режиме.

dubok79, Спасибо за совет. А как часто телефон будет находится не в спящем режиме после вызова alarm, если его программно не удерживать в "не" спящем режиме?
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
07.12.2014, 17:55 #10
Цитата Сообщение от sjoiton Посмотреть сообщение
что когда alarmManager вызывает Broadcast, это не значит, что он будет работать вечно.
А вы почитайте про AlarmManager, а потом делайте выводы. Если вы поставите ему RTC_WAKEUP, то аларм будет срабатывать всегда и будить устройство.
Кстати, сервис тоже не умрет если ему назначить соответствующие параметры. Почитайте и он нем
sjoiton
0 / 0 / 0
Регистрация: 03.12.2014
Сообщений: 5
08.12.2014, 08:12  [ТС] #11
Если вы поставите ему RTC_WAKEUP, то аларм будет срабатывать всегда и будить устройство.
После того, как он разбудит устройство, оно через N времени снова заснет, если программно ему это не запретить.

Кстати, сервис тоже не умрет если ему назначить соответствующие параметры.
Какие параметры? Сервис не влияет на работу процессора.
yura91
30 / 28 / 2
Регистрация: 23.10.2013
Сообщений: 2,255
19.05.2016, 23:22 #12
А вы почитайте про AlarmManager, а потом делайте выводы. Если вы поставите ему RTC_WAKEUP, то аларм будет срабатывать всегда и будить устройство.
Кстати, сервис тоже не умрет если ему назначить соответствующие параметры. Почитайте и он нем
Какие параметры нужно назначить сервису?
stix357
0 / 0 / 0
Регистрация: 27.05.2016
Сообщений: 9
Завершенные тесты: 2
27.05.2016, 18:32 #13
Что-нибудь получилось?
sjoiton
Добавлено через 10 минут
Рекомендуют использовать:
https://developer.android.com/refere...tReceiver.html
Но я не совсем понял: отработает WakefulBroadcastReceiver, запустит сервис, но его самого кто запустит?
Просто мучаюсь с аналогичной проблемой с сервисе
есть в нем Timer, но если интервал отработки Timer-а меньше времени ухода тела в сон, то все, тишина.
AlarmManager должен отработать, но ...... будет ли он отдельный поток запускать ...

Добавлено через 2 минуты
Цитата Сообщение от yura91 Посмотреть сообщение
Какие параметры нужно назначить сервису?
Поддерживаю вопрос.

Добавлено через 3 минуты
Цитата Сообщение от sjoiton Посмотреть сообщение
После того, как он разбудит устройство, оно через N времени снова заснет, если программно ему это не запретить.
Разве, что будить постоянно
Java
1
2
3
4
5
6
7
8
9
10
 Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(System.currentTimeMillis());
        calendar.add(Calendar.MINUTE, mSendGeoPeriod);
        mCalendarTime = calendar.getTimeInMillis();
 
 
        mAM = (AlarmManager) getApplicationContext().getSystemService(ALARM_SERVICE);
        Intent intentAlarm = new Intent(getApplicationContext(), LocalityService.class);
        mAM.cancel(pendingIntent);
        mAM.setRepeating(AlarmManager.RTC_WAKEUP, mCalendarTime, mSendGeoPeriod * 1000*60, pendingIntent);
Добавлено через 3 минуты
Цитата Сообщение от sjoiton Посмотреть сообщение
Если я буду использовать AlarmManager, сколько телефон будет "не" в спящем режиме, после того как выполнится alarm?
По идее столько, сколько указано в настройках тела.

Добавлено через 1 час 38 минут
Цитата Сообщение от sjoiton Посмотреть сообщение
dajver, вы видимо не понимаете, что когда alarmManager вызывает Broadcast, это не значит, что он будет работать вечно. Если телефон уйдет в спящий режим, broadcast и сервисы перестают работать, нужно удерживать телефон не в спящем режиме.
Вечно удерживать не стоит ..... батарея загнется
Это не спасает:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
   
    @Override
    public void onCreate() {     
//после нажатия кнопки питания сохраняется только блокировка сна PARTIAL_WAKE_LOCK
        mPowerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
        mWakeLockState=PowerManager.PARTIAL_WAKE_LOCK;
        mWakeLock = mPowerManager.newWakeLock(mWakeLockState, "UMSE PowerTest");
        if (mWakeLock != null) {
            mWakeLock.acquire();
       }
......
    @Override
 
    public void onDestroy(){
        if (mWakeLock != null) {
            mWakeLock.release();
            mWakeLock = null;
        }
....
yura91
30 / 28 / 2
Регистрация: 23.10.2013
Сообщений: 2,255
27.05.2016, 18:57 #14
PowerManager можно. Он не даст уйти в сон устройству пока не завершиться задача. Там есть методы посмотрите. Как вариант можно использовать.

Добавлено через 30 секунд
У самого сервиса вроде нет таких параметров
stix357
0 / 0 / 0
Регистрация: 27.05.2016
Сообщений: 9
Завершенные тесты: 2
27.05.2016, 20:42 #15
Цитата Сообщение от yura91 Посмотреть сообщение
PowerManager можно. Он не даст уйти в сон устройству пока не завершиться задача. Там есть методы посмотрите. Как вариант можно использовать.
И с гарантией убьет батарею ......
Цитата Сообщение от yura91 Посмотреть сообщение
У самого сервиса вроде нет таких параметров
Я не нашел.
Посему либо будить постоянно
Либо не знаю пока .......
Гугловские сервисы как-то стучатся для обновления .....
Или просто перехватывают перевод из спячки и втихаря стучатся на гугло маркет (пока хозяин тела добрый и из спячки сам вывел)

Добавлено через 17 минут
Цитата Сообщение от yura91 Посмотреть сообщение
PowerManager можно. Он не даст уйти в сон устройству пока не завершиться задача. Там есть методы посмотрите. Как вариант можно использовать.
Есть абсолютно дурной вариант: генерить в сервисе искуственно Ексепшен и он ....... перезапустится. Но это зло.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2016, 20:42
Привет! Вот еще темы с ответами:

IBM Thinkpad T30 - включается в спящем режиме - Ремонт ноутбуков
Доброго времени суток! Недавно привезли такого "диназавра" - IBM Thinkpad T30. Работал он под осью Win XP, но совсем недавно пришлось её...

Отключается Wi-fi на планшете (Win 8) при спящем режиме - Windows 8, 8.1
Проблема в следующем- есть планшет на Win 8 при перходе в спящий режим отключается Wi-fi. Кто знает как это исправить?

Доступ к принтеру когда Win8 в спящем режиме - Windows 8, 8.1
Доброго времени суток! В вин8 вроде есть возможность включить общий доступ даже тогда, когда комп в спящем режиме. Это так? Если - да,...

Раньше ноутбук отключался на старте, теперь в спящем режиме - Windows 8, 8.1
Мой ноутбук DELL INSPIRON 3521 с Windows 8.1 раньше отключался на старте (появлялся логотип DELL – отключение – повторное включение и...


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

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

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