Создал метод generatePlayer(String, String, ApiService)
в нем использую запросы, а так же метод Clan_DannieRx(player.getPersonaly_dannie().getClan_id(), application_id, api);
вызывает еще несколько асинхронных запросов, если условие истинно.
Тут всё работает, все запросы работают правильно. Возник вопрос, после того как все выполнилось, вернуть мне данные назад. generatePlayer(String, String, ApiService)
стоит пока с типом возвратаvoid
, но хочу сделать чтоб пользовательский тип данных возвращал.
То есть в другом месте я мог сделать вот так Person = generatePlayer("name", "2323", api);
Вот что у меня есть.
public void generatePlayer(final String account_id, final String application_id, final ApiService api)
{
final GenerateDannie generateDannie = new GenerateDannie();
final String[] response = new String[1];
clan_dannie = new Clan_Dannie();
ApiService apiMod = RetroClient.getApiServiceMod();
final HashMap<String, String> hashMap = new HashMap<>();
//Генерирует персональные данные
Flowable<Response<ResponseBody>> FlowablePersonallyDanie = api.getPersonallyDannie(account_id, application_id)
.mergeWith(api.getInfoTexnika(application_id))
.mergeWith(api.getTexnikaPlayer(account_id, application_id))
.mergeWith(api.getStatistikaTexnika(account_id, application_id))
.mergeWith(api.getDostizenie(application_id)) //Достижения
.mergeWith(api.getDostizeniePlayer(account_id, application_id))
.mergeWith(api.getDostizenieTexnika(account_id, application_id))
.mergeWith(apiMod.getModWin8());
FlowablePersonallyDanie
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new FlowableSubscriber<Response<ResponseBody>>() {
@Override
public void onSubscribe(Subscription s) {
s.request(Long.MAX_VALUE);
}
@Override
public void onNext(Response<ResponseBody> responseBodyResponse) {
//Прилетел ответ
try {
String url =String.valueOf(responseBodyResponse.raw().request().url());
String response = responseBodyResponse.body().string();
Log.e("URL", url);
Log.e("TAG", response);
hashMap.put(url, response);
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void onError(Throwable t) {
//Ошибка
}
@Override
public void onComplete() {
//В случае выполнения
generatePlayerDannie(hashMap, account_id);
if(!player.getPersonaly_dannie().getClan_id().isEmpty())
Clan_DannieRx(player.getPersonaly_dannie().getClan_id(), application_id, api);
// player.setClan_dannie(clan_dannie);
}
});
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как сделать, чтобы переключатели отображались слева от наименования и уменьшить расстояние?
Работаю в BitrixСоздал сайт в кодировке UTF-8, затем скопировал на него шаблон, созданный в однобайтовой кодировке, в результате чего, все русские...