Android 앱 (실제로는 첫 번째 앱)을 제작 중이며 검색 한 것과 유사한 트랙이 표시됩니다. 내 호출에 대해 rxJava 및 gson과 함께 retrofit2를 사용하고 있습니다. 각 트랙마다 이미지 뷰에서 응답으로 제공된 해당 이미지를 추가했지만 실제 이미지가 아니므로 밴드의 이미지 일뿐입니다. 앨범 검색을 할 경우 API에서 얻을 수있는 앨범 이미지를 갖고 싶습니다.어떻게 병렬 또는 동시 API 호출을 할 수 있습니까?
많은 시간 낭비없이 각 트랙의 앨범 정보를 반환하는 API 호출을 만드는 방법이 있습니까? 나는이 호출이 "사용자"(나)에게 덜 보이도록 서로 병렬로 발생시키기를 바랍니다.
private void loadSimilarTracks() {
String mbid = selectedTrack.getMbid();
String artist = selectedTrack.getmArtist();
String track = selectedTrack.getName();
searchService = new LastFMSearchService();
Flowable<List<TrackSimilar>> fetchDataObservable = null;
if(!mbid.equals("")) {
fetchDataObservable = searchService.getSimilarTracks(mbid);
}
else{
fetchDataObservable = searchService.getSimilarTracks(artist, track);
}
mCompositeSubscription.add(fetchDataObservable
.timeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS)
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribeWith(new DisposableSubscriber<List<TrackSimilar>>() {
@Override
public void onNext(List<TrackSimilar> tracks) {
mTracks = tracks;
similarTrackAdapter.setTrackList(tracks);
}
@Override
public void onError(Throwable e) {
Toast.makeText(getActivity(), "API CALL ERROR", Toast.LENGTH_SHORT).show();
}
@Override
public void onComplete() {
resultsView.setVisibility(View.VISIBLE);
}
})
);
}
P.S 내가 내 정보의 lastFM API를 사용하고 있습니다 :
이
내가 유사한 트랙을 검색하는 데 사용하는 코드입니다. 미리 답변 해 주셔서 감사합니다.