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

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

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

Как лучше поступить? - Программирование Android

12.12.2015, 00:47. Просмотров 661. Ответов 18
Метки нет (Все метки)

Есть уже законченное приложение. Принцип которого вэб приложение, грузящее основную часть через инет. Но не суть - тут всё работает. Есть необходимость добавить проверку некоего состояния (проще говоря опрашивать какой то URL получая ответ) и в случае если ответ тот, что нужен, то выводить уведомление всерху в трее (ну как это все приложения делают). Как это реализовать? Нужно ли как то писать стороний сервис с проверкой урл или этот сервис пишется внутри моего приложения и он же справится с выводом уведомлений?

Я просто никогда не писал сервисы и не занимался уведомлениями и не знаю как лучше это реализовать. Но в иделае хотелось бы всё в одном приложении.

Добавлено через 1 час 27 минут
P.S. забыл добавить - опрос состояния нужен в фоновом режиме. Ну как у смс, скайпа или подобных програм, когда фоновый процесс (сервис) чекает что либо и выводит уведомление.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2015, 00:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как лучше поступить? (Программирование Android):

Как лучше поступить с задачей сохранения картинки на сервере - Программирование Android
Такая дилемма.. Задача в том, чтобы получить картинку с камеры android-устройства и отправить ее на сервер, плюс еще кое-какие данные....

Как лучше сделать? - Программирование Android
Всем доброго времени суток. Интересует Ваше мнение как лучше реализовать. Есть приложение, по типу справочника (Life-Hacks). Что лучше...

Как лучше реализовать компоновку? - Программирование Android
Здравствуйте! Имеется вот такой макет: Как это лучше реализовать? GridView не подходит, а жестко привязывать к одному слою другой с...

Как лучше организовать напоминалку? - Программирование Android
Здравствуйте! Вот думаю написать прогу-напоминалку. Обязательно должна быть ф-ция отправки уведомлений в заданное время (или срабатывания...

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

Как лучше инициализировать контекст активити - Программирование Android
Я инициализирую так context = getApplicationContext() а как правильно?? Добавлено через 22 секунды как можно по другому??

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Bend3r
149 / 136 / 18
Регистрация: 29.07.2012
Сообщений: 709
12.12.2015, 14:25 #2
Прочитайте внимательно статью.
http://startandroid.ru/ru/uroki/vse-...prostoj-primer
0
Shin0by
0 / 0 / 0
Регистрация: 12.10.2015
Сообщений: 10
12.12.2015, 15:00  [ТС] #3
Да, спасибо. Мне именно принцип понять нужно, я мог найти ответ в инете и сам, но я же могу найти решение не для моей ситуации и начать работать не в том направлении. Потому решил посоветоваться.
0
Bend3r
149 / 136 / 18
Регистрация: 29.07.2012
Сообщений: 709
12.12.2015, 15:35 #4
У вас будет отдельный поток. В нем вы будете по таймеру делать HTTP запрос на ваш ресурс, и результат проверять на нужный вам action. При совпадении вы можете создавать уведомление.
0
Shin0by
0 / 0 / 0
Регистрация: 12.10.2015
Сообщений: 10
12.12.2015, 15:40  [ТС] #5
Я уже создал тестовый сервис. Сейчас решаю как правильнее сделать опрос (цикл?) и уничтожение этого цикла. Скорее всего буду давать возможность частоты опроса 1 мин и более (тобиш таймеры работающие по милисекундам не особо нужны, я думаю использовать TimeUnit).

ну и отдельный вопрос будет - как мне опросить некий урл, могу ли я сделать POST запрос или мне доступны только GET, и как это вообще сделать и получить результат.
0
Bend3r
149 / 136 / 18
Регистрация: 29.07.2012
Сообщений: 709
12.12.2015, 17:06 #6
Цитата Сообщение от Shin0by Посмотреть сообщение
ну и отдельный вопрос будет - как мне опросить некий урл, могу ли я сделать POST запрос или мне доступны только GET, и как это вообще сделать и получить результат.
Все что вам нужно было, это открыть гугл и вписать в поисковую строчку - "java post get запрос". Но я сделал это за вас, вот ссылка с подробными примерами - http://java-help.ru/android-get-post/
0
Shin0by
0 / 0 / 0
Регистрация: 12.10.2015
Сообщений: 10
12.12.2015, 18:15  [ТС] #7
Это действительно не сложно. Но я же не знал, что с сервисами это всё применимо. Я был уверен, что сервисы имеют ограничения кроме графического интерфейса.

Выводить всплывающие уведомление (те что сверху в строке) лучше из сервиса или из активити? Или это вообще не играет роли?
0
bastrakov
91 / 91 / 14
Регистрация: 10.10.2015
Сообщений: 307
Записей в блоге: 1
12.12.2015, 18:41 #8
прочитал задачу. а разве asynctask Вам не достаточно?
0
Shin0by
0 / 0 / 0
Регистрация: 12.10.2015
Сообщений: 10
12.12.2015, 18:48  [ТС] #9
Допускаю, что мне может понадобиться проверять статус при запуске андройда (если пользователь выдерет), а это как я понимаю уже только сервис.

Я думал про асинк, и использую это в двухсторонней связи приложения в вэб частью
0
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
12.12.2015, 19:48 #10
Shin0by, а может лучше смотреть в сторону GCM? Постоянные запросы будут выжирать батарею очень быстро.
0
Shin0by
0 / 0 / 0
Регистрация: 12.10.2015
Сообщений: 10
12.12.2015, 20:33  [ТС] #11
Может это то, что нужно. Я про такую технологию не знал. Почитаю.

Добавлено через 17 минут
Похоже для меня это очень сложно. Я PhP и JS программист, на Java я пишу с трудом копипастя код. Я понял, что эта технология позволяет связать мой сервер с облаком которое раздает уже некие данные.

Но мне же всёравно придётся использовать сервис? просто обращаться к некоему объекту облака который уже будет поддерживать соединение и гонять трафик?

Добавлено через 25 минут
давайте я опишу задачу полностью и даже покажу пример уже рабочего приложения. Наверное есть правильные решения и "мои".

Вот вэб приложение https://play.google.com/store/apps/d...by.starcitizen

Я хочу сделать, что бы при появлении новостей (которые для всех клиентов пока одни и те же, разделение я не предусмтариваю, только для рус. версии отображаю сразу рус часть новостей, и скрываю англ и для английского наоборот, но все могут видеть и те и те новости). Так вот, мне в принципе пригодны 2 варианта как я понимаю.
1) Опрашивать с клиента. Отсылая (ид) последней загруженной новости на сервер и там сервер думает и высылает, если есть что загрузить например в JSON предоставляя мне заголовки для всплывающих уведомлений.
Человек кликает на уведомление, открывается из свернутого состояния или грузится программа и отображает новоти просто все которые есть и соответственно новые.

2) Это если сделать иначе. Сервер (получив новость) шлёт всем клиентам (я так понимаю что это как раз та вышеупомянутая технология?) что есть новость. даже если в ту же секунду кто то обновлял новости или только запустил программу, то ничего страшного, если при этом вылезет уведомление о появлении новостей которые 2 сек назад пользователь загрузил (главное что бы не спустя 2 мин).

если что, то я уже надыбал и обкатал кусок кода который обрабатывает JSON и замечательно получаю в массив заголовки новых новостей. Просто потом возможно буду чекать не только новости и для этого хочу использовать JSON, так как в него всё можно завернут и структурировать.
0
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
12.12.2015, 20:46 #12
Цитата Сообщение от Shin0by Посмотреть сообщение
Похоже для меня это очень сложно. Я PhP и JS программист
Там как раз основная часть серверная, на самом телефоне ничего сложного.
Цитата Сообщение от Shin0by Посмотреть сообщение
Но мне же всёравно придётся использовать сервис?
Нет, при получении уведомления оно придет в Receiver и оттуда можно все что угодно делать с полученными данными.
Цитата Сообщение от Shin0by Посмотреть сообщение
если при этом вылезет уведомление о появлении новостей которые 2 сек назад пользователь загрузил (главное что бы не спустя 2 мин).
Бывает приходит и через несколько часов, но можно проверить локальные новости и показать уведомление только если новые еще не загружали.
0
Shin0by
0 / 0 / 0
Регистрация: 12.10.2015
Сообщений: 10
12.12.2015, 20:47  [ТС] #13
Но инициатором получения\рассылки выступает сервер (понятно что клиент обращается, но тем не менее)?
0
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
12.12.2015, 20:49 #14
Цитата Сообщение от Shin0by Посмотреть сообщение
Но инициатором получения\рассылки выступает сервер (понятно что клиент обращается, но тем не менее)?
Да сервер, клиент не обращается. Там по идее висит гугл сервис и проверяет не пришло ли какому-то приложению сообщение и, если пришло, рассылает эти сообщения по приложениям.
0
Shin0by
0 / 0 / 0
Регистрация: 12.10.2015
Сообщений: 10
12.12.2015, 20:51  [ТС] #15
Да, это то что надо точно. Попробую разобраться.

Моему приложению из сервиса гугла будет приходить в итоге какой то алерт или целиком массив с присланными данными и я это получаю и думаю что делать с этим?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2015, 20:51
Привет! Вот еще темы с ответами:

Как лучше создать такую ячейку - Программирование Android
Здравствуйте! Вопрос в следующем, хочу сделать при ландшафтной ориентации экрана меню слева из пяти пунктов, стандартными методами плохо...

Как лучше реализовать вывод объёмного текста?! - Программирование Android
Приветствую. Есть такая проблема в приложение типа туристического справочника нужно выводить текст в активити, и текста этого...

Как лучше организовать массив String[] из 60 элементов? - Программирование Android
Здравствуйте! Как лучше организовать массив String из 60 элементов? Речь идёт о создании собственного TimePicker. Так вот туда нужно...

Подскажите, как лучше сделать (справочник организаций) - Программирование Android
Здравствуйте уважаемые! В программировании для Android я новичок. Заинтересовал вопрос разработки справочника организаций. Создал...


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

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

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