Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.anwar.myasynctaskloader;
- import android.content.AsyncTaskLoader;
- import android.content.Context;
- import com.loopj.android.http.AsyncHttpResponseHandler;
- import com.loopj.android.http.SyncHttpClient;
- import org.json.JSONArray;
- import org.json.JSONObject;
- import java.util.ArrayList;
- import cz.msebera.android.httpclient.Header;
- public class MyAsyncTaskLoader extends AsyncTaskLoader<ArrayList<MovieItems>>{
- private ArrayList<MovieItems> mData;
- private boolean mHasResult =false;
- private String mMovieSearch;
- public MyAsyncTaskLoader(final Context context,String movieSearch){
- super(context);
- onContentChanged();
- this.mMovieSearch = movieSearch;
- }
- @Override
- protected void onStartLoading() {
- if (takeContentChanged())
- forceLoad();
- else if (mHasResult)
- deliverResult(mData);
- }
- @Override
- public void deliverResult(ArrayList<MovieItems> data) {
- mData = data;
- mHasResult = true;
- super.deliverResult(data);
- }
- @Override
- protected void onReset() {
- super.onReset();
- onStopLoading();
- if (mHasResult)
- onReleaseResources(mData);
- mData = null;
- mHasResult = false;
- }
- private static final String API_KEY = "6bb1e0745f7c266629f56a6705908e0a";
- @Override
- public ArrayList<MovieItems> loadInBackground() {
- SyncHttpClient client = new SyncHttpClient();
- final ArrayList<MovieItems> movieItemses = new ArrayList<>();
- String url = "https://api.themoviedb.org/3/search/movie?api_key="
- +API_KEY+"&language=en-US&query="+mMovieSearch;
- client.get(url, new AsyncHttpResponseHandler() {
- @Override
- public void onStart() {
- super.onStart();
- setUseSynchronousMode(true);
- }
- @Override
- public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
- try {
- String result = new String(responseBody);
- JSONObject responseObject = new JSONObject(result);
- JSONArray list = responseObject.getJSONArray("results");
- for (int i=0;i<list.length();i++){
- JSONObject moviedetail = list.getJSONObject(i);
- MovieItems movieItems = new MovieItems(moviedetail);
- movieItemses.add(movieItems);
- }
- }catch (Exception e){
- e.printStackTrace();
- }
- }
- @Override
- public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
- }
- });
- return movieItemses;}
- private void onReleaseResources(ArrayList<MovieItems> data){
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement