Ich versuche, die YouTube Data API
zu verwenden. Sie haben einen Java-Client erstellt. Here is the sample, dass ich versucht habe, eine Anfrage an ihre Server zu senden. Ich kann das nichtAsyncTask doInBackground() gibt Null zurück
// Call the API and print results.
SearchListResponse searchResponse = search.execute();
List<SearchResult> searchResultList = searchResponse.getItems();
im Hauptthread haben, weil Android Vernetzung auf dem Hauptthread nicht erlaubt. Also habe ich versucht, die AsyncTask
public class youtubeSearchTask extends AsyncTask<YouTube.Search.List, Void, SearchListResponse> {
@Override
protected SearchListResponse doInBackground(YouTube.Search.List... params) {
SearchListResponse a;
try {
a = params[0].execute();
} catch (java.io.IOException ioe) {
ioe.printStackTrace();
}
return a;
}
@Override
protected void onPostExecute(SearchListResponse searchResponse) {
List<SearchResult> searchResultList = searchResponse.getItems();
List<String> videoIds = new ArrayList<String>();
if (searchResultList != null) {
// Merge video IDs
for (SearchResult searchResult : searchResultList) {
videoIds.add(searchResult.getId().getVideoId());
}
Joiner stringJoiner = Joiner.on(',');
String videoId = stringJoiner.join(videoIds);
// Call the YouTube Data API's youtube.videos.list method to
// retrieve the resources that represent the specified videos.
try {
YouTube.Videos.List listVideosRequest = youtube.videos().list("snippet, statistics").setId(videoId);
new videoSearchTask().execute(listVideosRequest);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
zu verwenden habe ich versucht,
return params[0].execute();
aus dem doInBackground
Methode, aber es hat mich für eine mögliche IOException
berücksichtigen. Also habe ich den Code geändert und sage jetzt variable 'a' might not have been initialized
. Was mache ich?