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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.87
TonyBicbaev
3 / 3 / 0
Регистрация: 04.11.2013
Сообщений: 132
#1

Приём сообщений от сервера в фоне - Программирование Android

09.09.2016, 07:06. Просмотров 2284. Ответов 59
Метки нет (Все метки)

Привет, нужна помощь в структуре.
Первый раз работаю с подключением.
В общем к делу:
1.Отправляю запрос на сервер
2.У меня есть tabhost, инициализирую его с двумя классами, диалоги, и звонки.
3. Сейчас после запроса мне приходит ответ в виде Json строки, распарспарсиваю и заполняю как на скрине.

Вопрос собственно такой, мне нужно динамически отслеживать приходящую строку, так как после авторизации сервер будет мне отсылать сообщения с данными.

Как только прийдет сообщение мне нужно сразу обновить.

Я использую обычный Thread , AsyncTask не подходит так как он же выполняется один раз.

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

Обращаюсь сюда потому что нужен совет людей по опытней.

Так же я понял что нужно скорее всего использовать подключение в Service, и выводить уведомления с помощью Reciver. Но не знаю как применить это к моему коду.

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

Получение сообщений от сервера без запроса - Программирование Android
Среди существующих тем не нашёл ответа на свой вопрос, поэтому решил задать сам. Попытаюсь объяснить, что я имел в виду. Пишу...

Приём СМС - Программирование Android
Здравствуйте! Уже не первый день пытаюсь прочитать своим приложением входящее сообщение, но безрезультатно. На гаджете вообще программа...

Приём данных по Bluetooth - Программирование Android
Из Arduino посылается строка xx|xx|xx|xx|xx,xxxx|\n, где х-любое число. На андроиде получаю: х| x| x| x| итд. Подскажи как...

Приём текста по Bluetooth. Ошибки в символах - Программирование Android
Добрый день. Прошу особо не пинать. Вопрос чисто технический. Второй день ищу по поисковикам, заметил что не я один сталкивался с...

Приём сообщений методом POST - PHP
Некоторый клиент должен присылать PHP скрипту бинарный файл. Для этого он присылает http сообщение с методом POST, то есть когда в теле...

Приём сообщений без перезагрузки страницы - jQuery
Делаю чат, расскажите о http://jsfiddle.net/bv5Kq/13 Как мне реализовать это? Лист сообщений выглядит по типу <div...

59
TonyBicbaev
3 / 3 / 0
Регистрация: 04.11.2013
Сообщений: 132
20.09.2016, 11:51  [ТС] #46
Alexvp, Лол) задание от конторы)
вообще нужно с чего то начинать учиться) это раз) Да я и не мучаюсь мне интересно)
Просто я тут один под android пишу и просить не у кого вот и все) я не дурак и стараюсь схватывать на лету) ну вот кстати разобрался) Весь графический интерфейс у меня готов, скажу там тоже не мало времени ушло разобраться с адаптерами и так далее) но мне нравиться разработка очень клёва)

REALIST07, а вообще вопрос
если я хочу отправить сразу в 2 активити, правильно же так будет?) или каждый в свой поток засунуть?)
Java
1
2
3
4
5
6
7
   App.sendLocalBroadcastMessage(MainActivity.MAIN_ACTIVIVTY, "KEY_METHOD");
                    mHandler.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            App.sendLocalBroadcastMessageChats(DialogActivity.DIALOG_ACTIVITY,chatts);
                        }
                    }, 3000);
Добавлено через 57 секунд
REALIST07, прост хочу что бы все было более менее правильно)
0
REALIST07
Автор FAQ
Автор FAQ
176 / 176 / 13
Регистрация: 11.06.2010
Сообщений: 934
20.09.2016, 15:02 #47
TonyBicbaev, прочитай про широковещательные сообщения в других источниках, а то ты не до конца понимаешь их суть, если тебе нужно подписаться в нескольких активити на одно и то же сообщение, то ты должен указать одинаковый new IntentFilter(MainActivity.MAIN_ACTIVIVTY)
1
TonyBicbaev
3 / 3 / 0
Регистрация: 04.11.2013
Сообщений: 132
20.09.2016, 15:53  [ТС] #48
REALIST07, а точно) туплю. спасибо
0
TonyBicbaev
3 / 3 / 0
Регистрация: 04.11.2013
Сообщений: 132
22.09.2016, 12:18  [ТС] #49
REALIST07, почему может выводить такое сообщение?
Java
1
2
3
4
5
6
7
8
09-22 10:59:14.334 13937-14399/? W/ActivityManager: Bad activity token: android.os.BinderProxy@100fbe1a
                                                    java.lang.ClassCastException: android.os.BinderProxy cannot be cast to com.android.server.am.ActivityRecord$Token
                                                        at com.android.server.am.ActivityRecord.forToken(ActivityRecord.java:367)
                                                        at com.android.server.am.ActivityRecord.isInStackLocked(ActivityRecord.java:1070)
                                                        at com.android.server.am.ActivityManagerService.getActivityOptions(ActivityManagerService.java:10838)
                                                        at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:1673)
                                                        at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2483)
                                                        at android.os.Binder.execTransact(Binder.java:446)
Добавлено через 5 часов 14 минут
REALIST07, а еще как мне пропусть активити регистрации(моментально)? через intent получается некрасивый переход
0
TonyBicbaev
3 / 3 / 0
Регистрация: 04.11.2013
Сообщений: 132
28.09.2016, 06:35  [ТС] #50
REALIST07, Столкнулся еще с такой проблемой, подскажите пожалуйста.
Когда сервис активен(это точно), и сокет не закрыт(тоже точно).
Я нажимаю отправить запрос, а он не отправляется. в чем может быть проблема? то есть ничего вообще не происходит, не ошибок соединения нечего, ответы с сервера перестают приходить. но сокет открыт.
Может в потоке дело?
0
vxg
Модератор
3184 / 1987 / 227
Регистрация: 13.01.2012
Сообщений: 7,680
28.09.2016, 08:44 #51
TonyBicbaev, не засыпал ли телефон после подключения сокета?
0
TonyBicbaev
3 / 3 / 0
Регистрация: 04.11.2013
Сообщений: 132
28.09.2016, 11:30  [ТС] #52
vxg, в плане что экран гас? ну даже когда он вырубился сообщения шли.
на случай если сокет закроется у меня будет реконект сразу. но он не закрывался.

Добавлено через 6 минут
vxg, он может и час без перерыва проработать, а может, при авторизации уже не работать.
0
TonyBicbaev
3 / 3 / 0
Регистрация: 04.11.2013
Сообщений: 132
28.09.2016, 11:31  [ТС] #53
vxg, вот где пометил, это я нажал на кнопку отправить запрос, и все сколько не жми, будут эти 4 лога. на сервер тоже не приходит. Аппа не критует.
0
Миниатюры
Приём сообщений от сервера в фоне  
TonyBicbaev
3 / 3 / 0
Регистрация: 04.11.2013
Сообщений: 132
28.09.2016, 13:34  [ТС] #54
vxg, а может даже снова заработать через какое то время)) я вот вообще не пойму в чем дело, тока на поток думаю.
0
TonyBicbaev
3 / 3 / 0
Регистрация: 04.11.2013
Сообщений: 132
30.09.2016, 06:06  [ТС] #55
vxg, Карочи.
Сокет переходил в состояние "пред закрытое" и не закрывался. и не принимал сообщения.
0
vxg
Модератор
3184 / 1987 / 227
Регистрация: 13.01.2012
Сообщений: 7,680
30.09.2016, 06:42 #56
TonyBicbaev, переходил когда?
0
TonyBicbaev
3 / 3 / 0
Регистрация: 04.11.2013
Сообщений: 132
30.09.2016, 08:35  [ТС] #57
vxg, когда запрос на сервер отправлял)
0
vxg
Модератор
3184 / 1987 / 227
Регистрация: 13.01.2012
Сообщений: 7,680
30.09.2016, 08:46 #58
TonyBicbaev, нелогично. На причину не тянет
0
TonyBicbaev
3 / 3 / 0
Регистрация: 04.11.2013
Сообщений: 132
30.09.2016, 09:02  [ТС] #59
vxg, ну вот так, по сути должен был закрываться. сделал проверку на все подключения, когда проблема та случалась, заходил сюда mWebSocketClient.getConnection().isClosing().
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
   if (mWebSocketClient.getConnection().isOpen()) {
                                mWebSocketClient.close();
                              
                                connectWebSocket("1.1.3#" + login + ";" + password + "|");
 
                            } else if (mWebSocketClient.getConnection().isClosed()) {
                               //должен был сюда заходить
                                connectWebSocket("1.1.3#" + login + ";" + password + "|");
                            } else if(mWebSocketClient.getConnection().isClosing())
                            {     Log.e("status ", "status  =isClosing()");
                                mWebSocketClient.close();
 
                                connectWebSocket("1.1.3#" + login + ";" + password + "|");
 
                            } else if(mWebSocketClient.getConnection().isConnecting())
                            {
                                Log.e("status ", "status  =isConnecting()");
                            }else  if(mWebSocketClient.getConnection().isFlushAndClose())
                            {
                                Log.e("status ", "status =isFlushAndClose()");
                            }
0
REALIST07
Автор FAQ
Автор FAQ
176 / 176 / 13
Регистрация: 11.06.2010
Сообщений: 934
30.09.2016, 17:46 #60
Сервис должен уметь себя перезапустить если его прихлопнули в onTaskRemoved и перезапустить если понял, что соединение потеряно по каким-то причинам, как это реализовать - на ваше усмотрение
0
30.09.2016, 17:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.09.2016, 17:46
Привет! Вот еще темы с ответами:

Приём сообщения клиентом от сервера - C#
Расскажи пожалуйста, как это правильно делается. я реализовал клиент, передачу на сервер он делает успешно, но приём от сервера не знаю...

Ожидание сообщений от сервера - JavaScript
Здравствуйте, пишу многопользовательскую игру змейка на джава скрипте. Реализовано управление змейкой с помощью клавиатуры ...

Получение сообщений от сервера к клиенту - Java Сети
Всем привет.Не могу решить проблему передачи от сервера к клиенту сообщений,состоящих их нескольких строк,чтоб клиент получил сразу...

Отправка сообщений с сервера клиенту - Delphi
Всем здрасте, наверно я не первый кто задает этот вопрос. Есть сервер и есть подключающийся клиент. Клиент могет отправлять сообщения...


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

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

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