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

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

Войти
Регистрация
Восстановить пароль
 
ILNAR_93
Android
224 / 224 / 23
Регистрация: 19.01.2013
Сообщений: 1,732
Записей в блоге: 3
#1

Запрос на сервер каждые несколько секунд - Программирование Android

23.12.2015, 15:57. Просмотров 591. Ответов 10
Метки нет (Все метки)

Как лучше это реализовать?

- Простым таймером?
- Service?
- или ?

в случае сервиса мне не понятно как сделать так чтобы каждые несколько секунд срабатывал метод сервиса - опять нужно использовать таймер внутри сервиса?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2015, 15:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Запрос на сервер каждые несколько секунд (Программирование Android):

Приостановить приложение на несколько секунд - Программирование Android
Здравствуйте. В приложении после нажатии на кнопку - кнопки должны пропадать, а приложение останавливаться на 5 сек. Так вот, у меня...

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

один сервер несколько клиентов - Программирование Android
Всем привет) написала простую сервер-клиент программку (udp), теперь нужно сделать, что бы к серверу могло подключаться несколько клиентов....

POST - запрос на сервер - Программирование Android
Суть задачи: при нажатии на кнопку пост-запросом отправляется переменная со значением. Проблема: при нажатии на кнопку приложение...

Запрос на локальный сервер через usb - Программирование Android
Возможно ли сделать такое? На локальном сервере развернут сервис, мобильно приложение при условии что он подключен по USB к ПК который в...

Реализовать простой post запрос на php сервер - Программирование Android
Приветствую. Хотелось бы пример, но не от балды. В гугле есть вагон примеров, но какой самый оптимальный не ясно. Есть активити с 4-мя...

10
bastrakov
91 / 91 / 14
Регистрация: 10.10.2015
Сообщений: 307
Записей в блоге: 1
23.12.2015, 20:16 #2
1) интернет-запрос может в легкую быть секунд 15 или больше. что Вы будете делать, если пройдут "несколько секунд", а прошлый запрос еще не получит ответ?
2) нужно ли что бы запросы шли в тот момент, когда программа не работает (не на переднем плане)?

handler с таймаутом. примерно как-то так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
private Handler myHandler = new Handler();
...
myHandler.post(runIt);
...
private Runnable runIt = new Runnable()
{
    @Override
    public void run()
    {
        //do some here
        myHandler.postDelayed(runIt, 5000); //5sec
    }
};
1
ILNAR_93
Android
224 / 224 / 23
Регистрация: 19.01.2013
Сообщений: 1,732
Записей в блоге: 3
23.12.2015, 20:51  [ТС] #3
Цитата Сообщение от bastrakov Посмотреть сообщение
интернет-запрос может в легкую быть секунд 15 или больше. что Вы будете делать, если пройдут "несколько секунд", а прошлый запрос еще не получит ответ?
Этот случай думаю исправим тем что если первый запрос еще не прошел то второй не начнется..

Цитата Сообщение от bastrakov Посмотреть сообщение
нужно ли что бы запросы шли в тот момент, когда программа не работает (не на переднем плане)?
нет
0
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
23.12.2015, 23:48 #4
ILNAR_93, а можно дурацкий вопрос? Зачем делать запрос каждые несколько секунд?оО
0
ILNAR_93
Android
224 / 224 / 23
Регистрация: 19.01.2013
Сообщений: 1,732
Записей в блоге: 3
24.12.2015, 08:17  [ТС] #5
Цитата Сообщение от YuraAAA Посмотреть сообщение
Зачем делать запрос каждые несколько секунд?
чтобы узнать изменился ли статус заказа
0
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
24.12.2015, 08:29 #6
Цитата Сообщение от YuraAAA Посмотреть сообщение
а можно дурацкий вопрос? Зачем делать запрос каждые несколько секунд?оО
Причин может быть уйма! чат, проверка статуса заказа, проверка почты, подтверждение доставки, трекинг машины/человека по городу...

Цитата Сообщение от ILNAR_93 Посмотреть сообщение
в случае сервиса мне не понятно как сделать так чтобы каждые несколько секунд срабатывал метод сервиса - опять нужно использовать таймер внутри сервиса?
если это происходит в сервисе (логичнее) то твое активити может просто "превызывать"/перезапускать сервис по таймеру в активити (два одинаковых сервиса не запустятся). А тот уже пусть решает - имеет ли смысл переотправлять или дождаться ответа.
Можно попробовать в потоке запустить... но там надо будет синхронизацию и общение наладить...

Но это только для работы "пока программа открыта"
1
Spelcrawler
527 / 497 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
24.12.2015, 09:58 #7
ILNAR_93, не проше ли послать пуш, когда статус изменился и не насиловать батарею?
1
ILNAR_93
Android
224 / 224 / 23
Регистрация: 19.01.2013
Сообщений: 1,732
Записей в блоге: 3
24.12.2015, 10:06  [ТС] #8
Цитата Сообщение от Spelcrawler Посмотреть сообщение
не проше ли послать пуш
Возможно.

Цитата Сообщение от Spelcrawler Посмотреть сообщение
и не насиловать батарею
не думаю что батарейка так сильно будет насиловаться.. т.к. приложение будут запускать от силы 2-4 раза в день на 3-5 минут максимум..

Не по теме:

пушы опять лишние затраты как времени так и финансов (бесплатные есть - но наверное кол-во уведомлений подрезано)

0
Spelcrawler
527 / 497 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
24.12.2015, 10:10 #9
Цитата Сообщение от ILNAR_93 Посмотреть сообщение
бесплатные есть - но наверное кол-во уведомлений подрезано
От гугла полностью бесплатно. Ограничение на количество юзеров в топиках (это как бы группы на которые подписываешь устройство и рассылаешь 1 сообщение сразу всей группе) 1 000 000.
Цитата Сообщение от ILNAR_93 Посмотреть сообщение
приложение будут запускать от силы 2-4 раза в день на 3-5 минут максимум.
Получается оно не будет долбиться на сервер прям вообще всегда? Только пару минут после действия? Если так то можно и постоянно запрашивать с сервера самому.
1
ILNAR_93
Android
224 / 224 / 23
Регистрация: 19.01.2013
Сообщений: 1,732
Записей в блоге: 3
24.12.2015, 10:13  [ТС] #10
Цитата Сообщение от Spelcrawler Посмотреть сообщение
От гугла полностью бесплатно.
Не знал! Спасибо за наводку))

Цитата Сообщение от Spelcrawler Посмотреть сообщение
Получается оно не будет долбиться на сервер прям вообще всегда?
нет не будет, только когда приложение запущено и пользователь совершил некоторые действия
0
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
24.12.2015, 11:57 #11
ILNAR_93, Tester64,
Цитата Сообщение от Tester64 Посмотреть сообщение
Причин может быть уйма! чат, проверка статуса заказа, проверка почты, подтверждение доставки, трекинг машины/человека по городу...
для всего этого есть push notification, у google это Google Cloud Messaging. А запрос каждые несколько секунд - антипаттерн
1
24.12.2015, 11:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.12.2015, 11:57
Привет! Вот еще темы с ответами:

Windows подвисает каждые несколько секунд - Windows 7
некоторое время назад (подозреваю, что после обновления драйверов с сайта производителя ноутбука, но точно выяснить не представляется...

AJAX + Обнавление каждые несколько секунд... - jQuery
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/ libs/jquery/1.3.0/jquery.min.js"></script> <script...

Зависание ПК на несколько секунд каждые 1-3 секунды - Компьютерное железо
Добрый день. Столкнулся с такой проблемой, компьютер стал очень жутко тормозить. Ну, я подумал, что это дело в ОС. Переустановил я, значит,...

Обновлять данные каждые несколько секунд - JavaScript
Добрый день, подскажите пожалуйста, на страничке есть функция на php, которая получает данные из базы, как сделать так, чтобы эта функция...


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

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

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