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

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

Войти
Регистрация
Восстановить пароль
 
AntonAD
0 / 0 / 0
Регистрация: 12.07.2016
Сообщений: 7
#1

Выполнение задачи с интервалом 1 с - Android

12.07.2016, 09:53. Просмотров 255. Ответов 12

Пишу программу под Андроид. Одна из функций программы, запуск определенного кода каждую секунду вне зависимости от того спит система или нет. На андроиде 4.2 отлично работает AlarmManager (SetInexactRepeating), который вызывает код моего сервиса с нужной частотой. На андроиде 5.1 столкнулся с тем, что частоты ниже 1 минуты принудительно приводятся к 60 сек и код сервиса вызывается уже раз в минуту, что меня не устраивает.

Можете ли подсказать корректные методы решения моей задачи? Может быть надо использовать другой подход?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OlegJV
102 / 102 / 29
Регистрация: 13.03.2016
Сообщений: 471
12.07.2016, 10:29     Выполнение задачи с интервалом 1 с #2
Таймер, но батарею жрать будет...
AntonAD
0 / 0 / 0
Регистрация: 12.07.2016
Сообщений: 7
12.07.2016, 10:45  [ТС]     Выполнение задачи с интервалом 1 с #3
Про батарею я понимаю, это неизбежное зло. А про таймер хотелось бы подробнее.... Ссылку на класс, примеры....
Паблито
2011 / 1753 / 545
Регистрация: 12.05.2014
Сообщений: 6,207
Завершенные тесты: 1
12.07.2016, 10:50     Выполнение задачи с интервалом 1 с #4
а если где-то в сервисе стартануть задачу с интервалом 1 сек?
Java
1
2
ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();
executor.scheduleAtFixedRate(runnableTask, 0, 1, TimeUnit.SECONDS);
AntonAD
0 / 0 / 0
Регистрация: 12.07.2016
Сообщений: 7
12.07.2016, 11:00  [ТС]     Выполнение задачи с интервалом 1 с #5
http://stackoverflow.com/questions/6...xecutorservice
Если верить этой ссылке, таймеры и ScheduledExecutorService не будут работать когда телефон заснет и отстрелит мое приложение.
Паблито
2011 / 1753 / 545
Регистрация: 12.05.2014
Сообщений: 6,207
Завершенные тесты: 1
12.07.2016, 11:23     Выполнение задачи с интервалом 1 с #6
что подразумевается под "телефон заснет"?
OlegJV
102 / 102 / 29
Регистрация: 13.03.2016
Сообщений: 471
12.07.2016, 11:32     Выполнение задачи с интервалом 1 с #7
Таймер в сервисе, а перезапуск сервиса никто не отменял
AntonAD
0 / 0 / 0
Регистрация: 12.07.2016
Сообщений: 7
12.07.2016, 11:43  [ТС]     Выполнение задачи с интервалом 1 с #8
Имею в виду, когда мое приложение будет поставлено на паузу системой.

Добавлено через 1 минуту
Таймер в сервисе, а перезапуск сервиса никто не отменял.
Что имеете в виду под перезапуском сервиса?
OlegJV
102 / 102 / 29
Регистрация: 13.03.2016
Сообщений: 471
12.07.2016, 11:51     Выполнение задачи с интервалом 1 с #9
Я имею в виду, что если система сервис убьёт, он сам заново запустится.
AntonAD
0 / 0 / 0
Регистрация: 12.07.2016
Сообщений: 7
12.07.2016, 11:54  [ТС]     Выполнение задачи с интервалом 1 с #10
Я имею в виду, что если система сервис убьёт, он сам заново запустится.
Когда перезапустится? Я думаю что не скоро, а необходимость выполнять код раз в сек остается.
OlegJV
102 / 102 / 29
Регистрация: 13.03.2016
Сообщений: 471
12.07.2016, 12:19     Выполнение задачи с интервалом 1 с #11
То есть подразумевается, что система может убить все, кроме твоей программы? Хоть аккумулятор из телефона вытащи, а код должен исполняться раз в секунду ))
petruchodd
12.07.2016, 12:28
  #12

Не по теме:

интересно , а зачем нужен интервал такой маленький - ведь батарея реально будет садится быстро + именно из-за этого на 5+ и сделали ограничение в минуту

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.07.2016, 13:03     Выполнение задачи с интервалом 1 с
Еще ссылки по теме:

HTTP запрос с интервалом Android
Android Остановить выполнение во фрагменте
Android Выполнение действий приложения в ВК
Выполнение действия по таймеру Android
Выполнение сценария на Android Android

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

Или воспользуйтесь поиском по форуму:
AntonAD
0 / 0 / 0
Регистрация: 12.07.2016
Сообщений: 7
12.07.2016, 13:03  [ТС]     Выполнение задачи с интервалом 1 с #13
То есть подразумевается, что система может убить все, кроме твоей программы? Хоть аккумулятор из телефона вытащи, а код должен исполняться раз в секунду ))
Не будем доводить тему до абсурда.
Сервис должен работать пока телефон работает. AlarmManager вполне штатно это позволяет делать. Причем до 5 версии с нужной частотой.
Yandex
Объявления
12.07.2016, 13:03     Выполнение задачи с интервалом 1 с
Ответ Создать тему
Опции темы

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