/** General AsyncTask */ private static abstract class MALUAPITask extends AsyncTask { /** The handler for the retrieved data */ protected final ConnectionHandler handler; protected final String url; public MALUAPITask(ConnectionHandler handler, String url) { this.handler = handler; this.url = url; } @Override protected Result doInBackground(Void... params) { String result = getResponseString(url); if(result != null && ! isCancelled()){ return doInBackground(result); } return null; } @Override protected void onPostExecute(Result result) { handler.onPostResult(result); } /** Called when doInBackground has gotten the wanted data from the Connection */ protected abstract Result doInBackground(String results); } // NEXT CLASS /** Task to retrieve the wanted Manga */ private static class GetMangaTask extends MALUAPITask { public GetMangaTask(ConnectionHandler handler, String url) { super(handler, url); } @Override protected Manga doInBackground(String results) { // TODO Make String to Manga return null; } }