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

Получение данных с сервера, длинные запросы - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Как правильно сохранять/восстанавливать данные из Bundle http://www.cyberforum.ru/android-dev/thread1774756.html
Доброго дня. Не могу точно разобраться где вызывать сохранение данных в Bundle и извлечение их оттуда. В Активити есть поле ImageView куда я получаю фото с камеры. И при повороте экрана это поле очищается. Если прооверрайдить методы onPause и onResume и добавить в них Log.d то я вижу что при повороте экрана вызываются onPause-onCreate-onResume. Всё как и должно быть. Но где создавать...
Android Передать параметр из одной в другую Добрый вечер. Тут небольшая проблема. Как передать (ID) - С одной AppCompatActivity в Fragment. Ну принцип такой же как на Intent Intent i = new Intent(getActivity(), ID.class); i.putExtra("id", id); http://www.cyberforum.ru/android-dev/thread1774744.html
Как правильно использовать LeakCanary? Android
как правильно использовать LeakCanary, чтобы можно было определять утечки во всем приложении, а не только утечки активити?
Как создать spinner внутри recycler view? Android
необходимо реализовать выпадающий список внутри recycler view. может, кто сталкивался с подобным или есть идеи, как это можно сделать, буду благодарен за помощь)
Android Android cordova response http://www.cyberforum.ru/android-dev/thread1774638.html
Всем привет! Кто сталкивался с подобным, подскажите плиз как решить! Есть приложение на html5/angular. Через Сordova требуется получить разные файлы для разных мобильных ОС(Android, iOS). Получаем, все гуд. Устанавливаем на iOS - логинимся в приложении и проходим далее. Устанавливаем на Android - логинимся в приложении и получаем в респонсе status 0. Соответственно никуда дальше приложение не...
Android Как задать заголовок диалога через элемент strings.xml? Я перевожу свою программу на английский язык, но возникла одна проблема: названия диалогов остались непереведенными, т.к. их текст задается в .java классе, а не в strings.xml А как их привязать в элементу из strings.xml? Можно сделать и иначе, но так удобнее и легче всего... Подскажите, пожалуйста! подробнее

Показать сообщение отдельно
opanasa
0 / 0 / 0
Регистрация: 12.12.2015
Сообщений: 15

Получение данных с сервера, длинные запросы - Android

02.07.2016, 19:05. Просмотров 305. Ответов 7
Метки (Все метки)

Здравствуйте. Оговорюсь сразу, на сервере обычный php в цикле опрашивающий бд на изменения.
Взял приложение с хабры и с обычными запросами раз в 15 сек оно прекрасно пашет. накрутил на сервер лонгпул в моем понимании и приложение перестало работать корректно, то есть ответа от сервера еще нет, а оно сразу пишет что ответ пуст. притом основное - в браузере обычном все прекрасно и корректно работает. запросы обычные get.
Оговорюсь сразу, это копипаст с хабры немного переделанный. я пытался и циклы делать на инпутстрим и тп, итог один. он сразу, без ответа сервера выдает что ответ пуст

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
                while (true) { // стартуем бесконечный цикл
 
                    // глянем локальную БД на наличие сообщщений чата
                    cursor = chatDBlocal.rawQuery(
                            "SELECT * FROM chat ORDER BY data", null);
 
                    // если какие-либо сообщения есть - формируем запрос
                    // по которому получим только новые сообщения
                    if (cursor.moveToLast()) {
                        last_time = cursor.getLong(cursor
                                .getColumnIndex("data"));
                        lnk = server_name + "/chat.php?action=select&data=" + last_time.toString();
 
                        // если сообщений в БД нет - формируем запрос
                        // по которому получим всё
                    } else {
                        lnk = server_name + "/chat.php?action=select&data=1";
                    }
 
                    cursor.close();
 
                    // создаем соединение ---------------------------------->
                    try {
                        Log.i("chat",
                                "+ FoneService --------------- ОТКРОЕМ СОЕДИНЕНИЕ");
 
                        conn = (HttpURLConnection) new URL(lnk)
                                .openConnection();
                        conn.setReadTimeout(20000);
                        conn.setConnectTimeout(25000);
                        conn.setRequestMethod("GET");
                        //conn.setRequestProperty("User-Agent", "Mozilla/5.0");
                        conn.setDoInput(true);
                        conn.connect();
 
                    } catch (Exception e) {
                        Log.i("chat", "+ FoneService ошибка: " + e.getMessage());
                    }
                    // получаем ответ ---------------------------------->
                    
 
 
                    try {
                        InputStream is = conn.getInputStream();
                        while (is == null) {
                            is = conn.getInputStream();
                        }
                        BufferedReader br = new BufferedReader(
                                new InputStreamReader(is, "UTF-8"));
                        StringBuilder sb = new StringBuilder();
                        String bfr_st;
                        while ((bfr_st = br.readLine()) != null) {
                            sb.append(bfr_st);
                        }
 
                        Log.i("chat", "+ FoneService - полный ответ сервера:\n"
                                + sb.toString());
                        // сформируем ответ сервера в string
                        // обрежем в полученном ответе все, что находится за "]"
                        // это необходимо, т.к. json ответ приходит с мусором
                        // и если этот мусор не убрать - будет невалидным
                        ansver = sb.toString();
                        ansver = ansver.substring(0, ansver.indexOf("]") + 1);
 
                        is.close(); // закроем поток
                        br.close(); // закроем буфер
 
 
 
                    } catch (Exception e) {
                        Log.i("chat", "+ FoneService ошибка: " + e.getMessage());
                    } finally {
                        conn.disconnect();
                        Log.i("chat",
                                "+ FoneService --------------- ЗАКРОЕМ СОЕДИНЕНИЕ");
                    }
 
             
                }
прошу совета или подсказки. как реализовать чтобы было ожидание ответа, повторюсь - браузеры работают корректно - ждут ответа, и как только база меняется, скрипт его и выдает.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru