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

Socket.io (прослушивание события работает на Desktop и не работает на Android) - Android

Восстановить пароль Регистрация
Другие темы раздела
Android SwitchPreference On/Off http://www.cyberforum.ru/android-dev/thread1641509.html
Собственно застрял на выполнение сей момента. Создал окно настроек Preference. В xml есть элемент SwitchPreference. <SwitchPreference android:key="sound" android:summary="Звук" android:switchTextOn="ВКЛ" android:switchTextOff="ВЫКЛ"/> Просмотрел уже кучу сайтов, но так и не понял, как вытащить значения On Off из этого элемента, дабы в приложении по этой...
Android Как подключить dll или lib в Android Studio? Собственно, вопрос в теме. http://www.cyberforum.ru/android-dev/thread1641381.html
Android Создание стиля карточки в ListView
Доброго времени суток. Делаю интерфейс приложения и возникает проблема в стиле отображения. card_background.xml <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:shape="rectangle"> <solid android:color="#CABBBBBB" /> <corners android:radius="2dp" /> </shape>
Защита приложения от запуска в эмуляторе Android
Доброго времени суток! Есть ли способ ограничить запуск своего приложения из эмулятора?
Android Посоветуйте с чего начать http://www.cyberforum.ru/android-dev/thread1641194.html
Посоветуйте источники(учебники, видео, статьи и т.п.) для того, чтобы создать простое Android приложение для учебы (не игру с графикой, она мне не нужна и читать\смотреть про это для меня - пустая трата времени). В планах поместить в приложение теорию по предмету и тесты по темам, возможно поиск, сортировку и подобные мелочи. Желательно по сути моей проблемы, а не полный курс программирования на...
Android AsyncHttpResponseHandler В сети нашел пример, и пытаюсь его запустить. И вот ругается на последнюю ошибку, скорее всего из за разных версий sdk. Так как гайд был написан довольно таки давно. подробнее

Показать сообщение отдельно
__romka_
0 / 0 / 0
Регистрация: 08.09.2010
Сообщений: 25
19.01.2016, 10:08  [ТС]     Socket.io (прослушивание события работает на Desktop и не работает на Android)
В манифесте вот такой permission <uses-permission android:name="android.permission.INTERNET" />
Запускается в основном потоке.

Что интересно.
Соединение с этим же сервером для получения данных работает нормально. Аналогично SE (Desktop) версии.
Вот метод для получения данных:

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
public void getJsonFromsite() throws URISyntaxException {
        IO.Options opts = new IO.Options();
        final Socket socket = IO.socket("http://aplikuha.ru", opts);
        Date now = new Date();
 
 
        if (prefs.getBoolean("firstrun", true)) {
            curTime = Long.valueOf(1114475126);
        }
        else {
            curTime = new Long(now.getTime()/1000);
        }
 
        socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() {
            @Override
            public void call(Object... args) {
                Ack ack = new Ack() {
                    @Override
                    public void call(Object... os) {
                        for (Object obj : os) {
                            str += obj.toString();
                        }
                        System.out.println(">>>>>> allRecords"+str);
 
                        try {
                            if (str.length()>5) {allJsonToDB(str);}
                        } catch (JSONException | InterruptedException | URISyntaxException e) {
                            e.printStackTrace();
                       }
                        str = "";
                    }
                };
 
 
                Emitter emit = socket.emit("getData", curTime, ack); //1114475126 (NOW   1450787442) 1450877304
            }
        }).on(Socket.EVENT_DISCONNECT, new Emitter.Listener() {
 
            @Override
            public void call(Object... args) {
            }
 
        });
        socket.connect();
    }
Добавлено через 1 час 11 минут
UPD.

Если вызвать этот метод в onCreate основного активити - он работает. Возвращает ответы сервера НО..... похоже блокирует UI. Экран телефона белый (((( Графические элементы не отображаются.

Добавлено через 19 часов 35 минут
Разобрался.
Дело в том, что у меня в этом же потоке есть метод получения новых записей и события на сервере надо было слушать в нём же:
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
public void getJsonFromsite() throws URISyntaxException {
        IO.Options opts = new IO.Options();
        final Socket socket = IO.socket("http://aplikuha.ru", opts);
        Date now = new Date();
 
 
        if (prefs.getBoolean("firstrun", true)) {
            curTime = Long.valueOf(1114475126);
        }
        else {
            curTime = new Long(now.getTime()/1000);
        }
 
        socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() {
            @Override
            public void call(Object... args) {
                Ack ack = new Ack() {
                    @Override
                    public void call(Object... os) {
                        for (Object obj : os) {
                            str += obj.toString();
                        }
                        System.out.println(">>>>>> allRecords" + str);
                        try {
                            if (str.length() > 5) {
                                allJsonToDB(str);
                            }
                        } catch (JSONException | InterruptedException | URISyntaxException e) {
                            e.printStackTrace();
                        }
                        str = "";
                    }
                };
                Emitter emit = socket.emit("getData", curTime, ack); //1114475126 (NOW   1450787442) 1450877304
 
                /////////// слушаю событие "refresh"
                socket.on("refresh", new Emitter.Listener() {
                    @Override
                    public void call(Object... os) {
                        for (Object obj : os) {
                            str += obj.toString();
                        }
                        System.out.println("refresh --->"+str);
                        str = "";
                    }
                });
                   ///////////End of  слушаю событие "refresh"
 
            }
        }).on(Socket.EVENT_DISCONNECT, new Emitter.Listener() {
 
            @Override
            public void call(Object... args) {
            }
 
        });
        socket.connect();
    }
 
Текущее время: 01:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru