#java #okhttp3
#java #okhttp
Вопрос:
У меня есть код в моем приложении для Android:
homes=Get_HomeList(this, progressBar, view, mMap,MapsActivity.this);
Log.v(TAG, "onMapReady: " homes.size());
Get_HomeList — это функция, которая извлекает данные из серверной части с помощью асинхронного вызова okhhttp.
Внутри этой функции у меня есть метод onsuccessful, с помощью которого у меня есть доступ к списку домов, который только что был извлечен.
Однако мне нужен список домов вне этой функции. но эта строка
Log.v(TAG, "onMapReady: " homes.size());
выдает мне null для homes; Я предполагаю, это потому, что он выполняется в параллельном потоке, который еще не видел результатов home.
Теперь мой вопрос заключается в том, как можно справиться с этим и иметь возможность видеть извлеченные данные вне функции 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?Или вообще, как мы можем справиться с этими случаями?
Комментарии:
1. Вы должны делать то, что вы хотите сделать внутри этой функции обратного вызова.
2. Это то, что я делаю в настоящее время, но мне нужно сделать что-то, что, похоже, не может сделать это таким образом. эти две строки находятся в MapActivity. Я извлекаю дома в функции и добавляю маркеры в действие map. Однако, похоже, что для того, чтобы заставить прослушиватель нажимать маркеры, мне нужно реализовать некоторый интерфейс для map activity, который не может видеть список home.