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

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

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

Метод вызывается только после второго нажатия на кнопку - Программирование Android

01.11.2015, 20:08. Просмотров 197. Ответов 2
Метки нет (Все метки)

есть метод

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
import com.github.nkzawa.emitter.Emitter;
import com.github.nkzawa.socketio.client.Ack;
import com.github.nkzawa.socketio.client.IO;
import com.github.nkzawa.socketio.client.Socket;
 
//gradle (compile 'com.android.support:appcompat-v7:23.0.0'
//            compile 'com.github.nkzawa:socket.io-client:0.3.0')
 
public String getJsonFromsite() throws URISyntaxException {
        final com.github.nkzawa.socketio.client.Socket socket = IO.socket("http://aplikuha.ru");
        socket.connect();
        socket.on(com.github.nkzawa.socketio.client.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();
                        }
                    }
                };
                Emitter emit = socket.emit("getData", 1114475126, ack); //now(timestamp)
            }
        }).on("event", new Emitter.Listener() {
 
            @Override
            public void call(Object... args) {
            }
 
        }).on(com.github.nkzawa.socketio.client.Socket.EVENT_DISCONNECT, new Emitter.Listener() {
 
            @Override
            public void call(Object... args) {
            }
 
        });
        socket.connect();
        return str;
 
    }
Метод получает большой (150 кБ) JSON
https://yadi.sk/i/f_LSE2jjjyDcQ
Вызываю кнопкой и пытаюсь напечатать JSON в системном отладчике:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
btnAdd.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                new Thread(new Runnable() {
                    public void run() {
                        try {
                            System.out.println(getJsonFromsite());
                        } catch (URISyntaxException e) {
                            e.printStackTrace();
                        }
                    }
                }).start();
            }
        });
Проблема в том, что JSON печатается не с первого нажатия на кнопку, а только с последующих.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2015, 20:08     Метод вызывается только после второго нажатия на кнопку
Посмотрите здесь:
Сразу после нажатия Power вызывается OnCreate. Почему? Android
Android Крашится программа после нажатия на кнопку
Android Сделать кнопку невидимой после нажатия
Android Подскажите - не вызывается метод в потоке
База SQLite: метод по созданию таблицы не вызывается Android
Событие нажатия на кнопку home Android
Android После засыпания вызывается onCreate и onRestoreInstanceState
Приложение закрывается только со второго раза Android
Нажатие на пункт меню срабатывает только со второго раза Android
Вывод изображения после нажатия кнопки Android
Не работает приложение после нажатия кнопки home Android
GridView после нажатия назад возвращается на первую ячейку Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
1566 / 1308 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
01.11.2015, 23:21     Метод вызывается только после второго нажатия на кнопку #2
__romka_, а почему socket.connect () дважды написан?
__romka_
0 / 0 / 0
Регистрация: 08.09.2010
Сообщений: 25
04.11.2015, 21:20  [ТС]     Метод вызывается только после второго нажатия на кнопку #3
Убрал лишний socket.connect ().
Все равно ответ приходит (JSON) только со второго нажатия на кнопку.
Yandex
Объявления
04.11.2015, 21:20     Метод вызывается только после второго нажатия на кнопку
Ответ Создать тему
Опции темы

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