Как я могу вернуть глобальную переменную из иона? - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть некоторые проблемы с получением данных от Иона. Мне нужно получить переменную из функции, и я знаю, что эта функция ион выполняется отдельно от основного потока. Как я могу получить эти данные? Может быть, мне нужно подождать, пока функция не завершится, но как я могу это сделать?

final String someText;
    Ion.with(this)
           .load(URL)
            .asString()
            .setCallback(new FutureCallback<String>() {
                @Override
                public void onCompleted(Exception e, String result) {
                    someText = result.toString();
                    System.out.println(someText) // i get someText not empty
                }
            });
System.out.println(someText) // i get someText empty

1 Ответ

0 голосов
/ 06 ноября 2019

Ион асинхронный, поэтому someText не был установлен обратным вызовом. Если вам нужно заблокировать ожидание результата, вы можете вызвать .get () вместо использования setCallback.

final String someText = Ion.with(this)
       .load(URL)
        .asString()
        .get(); // THIS WILL BLOCK THE THREAD
System.out.println(someText) // i get someText not empty

Я бы не рекомендовал делать это, потому что тогда вы заблокируете вызывающий поток, которыйможет быть основной темой. Использование setCallback является предпочтительным.

...