YouTube API에 요청하기위한 asyncTask가 있습니다. AsyncTask에서 데이터를 반환하려고하는데 youtube 요청을 실행하자마자 멈 춥니 다.AsyncTask에서 doInBackground에서 다른 비동기 호출을 발생시키는 값을 반환하는 방법
public class FindPreviousPlaylistTask extends AsyncTask<Void, Void, PlaylistListResponse> {
@Override
protected PlaylistListResponse doInBackground(Void... params) {
YouTube.Playlists.List playlistsListMineRequest = getYoutube().playlists()
.list("snippet,contentDetails")
.setMine(true)
.setMaxResults(50L);
ArrayList<Playlist> foundPlaylists = new ArrayList<Playlist>();
PlaylistListResponse response = playlistsListMineRequest.execute(); //Async call
return response;
return null;
}
}
.
private PlaylistListResponse getPlaylist(){
FindPreviousPlaylistTask previousPlaylistTask = new FindPreviousPlaylistTask();
return previousPlaylistTask.execute().get();
}
AsyncTask를의 요점은 메인 스레드 외부에서 유튜브 전화를하지만, 지금은 유튜브 호출의 값을 반환 할 수 있습니다. 내가 .get()
없이 previousPlaylistTask.execute()
를 호출 할 경우
은 당신이 완료하고 결과를 얻을 수있는 작업에 대한 현재 스레드를 대기하게 get()
를 호출하기 때문에 앱이 정지
같은 사용자 정의 리스너를 호출 할 수 있습니다이
같은 인터페이스를 만들 수 있습니다 ' –
@ ρяσѕρєяK 무슨 뜻인지 확실치 않습니다. – code511788465541441
예제 : [사용자 지정 리스너 만들기] (https://guides.codepath.com/android/Creating-Custom-Listeners) –