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

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

Войти
Регистрация
Восстановить пароль
 
__romka_
0 / 0 / 0
Регистрация: 08.09.2010
Сообщений: 25
01.11.2015, 20:08     Метод вызывается только после второго нажатия на кнопку #1
есть метод

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     Метод вызывается только после второго нажатия на кнопку
Посмотрите здесь:

Приложение закрывается только со второго раза Android
Событие нажатия на кнопку home Android
Не работает приложение после нажатия кнопки home Android
Сохранить число в поле ввода после нажатия арифметического действия Android
Android После засыпания вызывается onCreate и onRestoreInstanceState
База SQLite: метод по созданию таблицы не вызывается Android
GridView после нажатия назад возвращается на первую ячейку Android
Сразу после нажатия Power вызывается OnCreate. Почему? Android
Через какой метод можно анимировать аппаратную кнопку? Android
Вывод изображения после нажатия кнопки Android
Android Подскажите - не вызывается метод в потоке
Нажатие на пункт меню срабатывает только со второго раза Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
 Аватар для YuraAAA
1563 / 1305 / 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     Метод вызывается только после второго нажатия на кнопку
Ответ Создать тему
Опции темы

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