package com.hrupin.samples.loadermanagersample; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URL; import android.content.Context; import android.support.v4.content.AsyncTaskLoader; public class MyLoader extends AsyncTaskLoader<String>{ private String mData; private String url; public MyLoader(Context context, String url) { super(context); this.url = url; } @Override public String loadInBackground() { String data = null; try { InputStream input = new URL(url).openStream(); data = getContent(input); } catch (IOException e) { return e.getMessage(); } if(data == null){ return "NULL Data"; } return data; } private static String getContent(InputStream in) throws IOException { InputStreamReader is = new InputStreamReader(in); StringBuilder sb = new StringBuilder(); BufferedReader br = new BufferedReader(is); String read = br.readLine(); while (read != null) { sb.append(read); read = br.readLine(); } return sb.toString(); } @Override public void deliverResult(String data) { mData = data; if (isStarted()) { super.deliverResult(data); } } @Override protected void onStartLoading() { if (mData != null) { deliverResult(mData); } if (takeContentChanged() || mData == null) { forceLoad(); } } @Override protected void onStopLoading() { cancelLoad(); } }