Как слушать (не ждать) результаты, которые будут завершены в параллельном потоке - PullRequest
0 голосов
/ 03 апреля 2019

У меня есть код в моем приложении для Android:

    homes=Get_HomeList(this, progressBar, view, mMap,MapsActivity.this);
    Log.v(TAG, "onMapReady: "+homes.size());

Get_HomeList - это функция, которая извлекает данные из серверной части с помощью асинхронного вызова okhhttp.

Внутри этой функции у меня есть успешный метод, это место, где у меня есть доступ к списку домов, которые только что были получены.

Однако мне нужен список домов вне этой функции. но эта строка

Log.v(TAG, "onMapReady: "+homes.size());

дает мне ноль для дома; Я думаю, это потому, что он работает в параллельном потоке, который еще не видел домашних результатов.

Теперь мой вопрос заключается в том, как справиться с этим и увидеть извлеченные данные вне функции Get_HomList ? Внутри этой функции это выглядит так:

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                if (response.isSuccessful()) {
                    try {
                        String responsedata = response.body().string();
                         homes= extractHomesUpdateMap(responsedata,mMap,mapsActivity);

                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                } else {

             }

Есть ли способ, которым при успешной загрузке и завершении я могу передать результаты за пределы Get_HomeList ? Или вообще как мы можем справиться с этими случаями?

...