Форум программистов, компьютерный форум 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
Сервер для приложения на Android Программирование Android
чи для приложения на андроид нужен сервер
Как правильно использовать LeakCanary? Программирование Android
как правильно использовать LeakCanary, чтобы можно было определять утечки во всем приложении, а не только утечки активити?
Программирование Android Как создать spinner внутри recycler view? http://www.cyberforum.ru/android-dev/thread1774665.html
необходимо реализовать выпадающий список внутри recycler view. может, кто сталкивался с подобным или есть идеи, как это можно сделать, буду благодарен за помощь)
Программирование Android Android cordova response Всем привет! Кто сталкивался с подобным, подскажите плиз как решить! Есть приложение на html5/angular. Через Сordova требуется получить разные файлы для разных мобильных ОС(Android, iOS). Получаем, все гуд. Устанавливаем на iOS - логинимся в приложении и проходим далее. Устанавливаем на Android - логинимся в приложении и получаем в респонсе status 0. Соответственно никуда дальше приложение не... подробнее

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

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

02.07.2016, 19:05. Просмотров 390. Ответов 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 --------------- ЗАКРОЕМ СОЕДИНЕНИЕ");
                    }
 
             
                }
прошу совета или подсказки. как реализовать чтобы было ожидание ответа, повторюсь - браузеры работают корректно - ждут ответа, и как только база меняется, скрипт его и выдает.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru