С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
AntonAD
0 / 0 / 0
Регистрация: 12.07.2016
Сообщений: 8
1

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

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

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

Можете ли подсказать корректные методы решения моей задачи? Может быть надо использовать другой подход?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.07.2016, 09:53
Ответы с готовыми решениями:

Клики с интервалом
Подскажите пожалуйста, как сделать так, чтобы при 5 кликах подряд с маленьким...

HTTP запрос с интервалом
Здравствуйте! Подскажите как получать код странички с интервалом ~85мс Я...

Выполнение процедур по очереди с интервалом в 10 сек
Привет! Подскажите пожалуйста, как замутить таймер. У меня есть 7 процедур,...

Выполнение стороннего скрипта с определенным интервалом
Доброго времени суток, форумчане. Возникла потребность в скрипте, выполняемом...

Выполнение php файла с временным интервалом
Друзья, имеется интернет-радио собственного производства. Встал вопрос о том,...

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

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

Не по теме:

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

0
AntonAD
0 / 0 / 0
Регистрация: 12.07.2016
Сообщений: 8
12.07.2016, 13:03  [ТС] 13
То есть подразумевается, что система может убить все, кроме твоей программы? Хоть аккумулятор из телефона вытащи, а код должен исполняться раз в секунду ))
Не будем доводить тему до абсурда.
Сервис должен работать пока телефон работает. AlarmManager вполне штатно это позволяет делать. Причем до 5 версии с нужной частотой.
0
12.07.2016, 13:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.07.2016, 13:03

Как организовать выполнение функций с постоянным интервалом
Собственно я уже все спросил. У меня есть функция, которая меняет одну картинку...

Разработать программу решения задачи,в которой увеличить высоту главной формы на 1 пиксель с интервалом в 3 секунды
Разработать программу решения задачи,в которой увеличить высоту главной формы...

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


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

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