Java tutorial
/* * This file is part of Prepay Credit for Android * * Copyright 2013 Damien O'Reilly * * Prepay Credit for Android is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Prepay Credit for Android is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Prepay Credit for Android. If not, see <http://www.gnu.org/licenses/>. * * Report bugs or new features at: https://github.com/DamienOReilly/PrepayCredit * Contact the author at: damienreilly@gmail.com */ package damo.three.ie.prepay; import android.content.Context; import android.os.AsyncTask; import damo.three.ie.fragment.UpdateFragment; import org.json.JSONArray; /** * This class is responsible for logging into the My3 account and fetching details. Parsing data and returning usages * in JSON format. */ public class UpdateAsyncTask extends AsyncTask<Void, Void, JSONArray> { private final UpdateFragment updateFragment; private final Context context; private final JSONArray jsonArray = null; private Exception exception = null; /** * @param updateFragment Fragment that initialized this {@link AsyncTask} */ public UpdateAsyncTask(UpdateFragment updateFragment) { this.context = updateFragment.getActivity().getApplicationContext(); this.updateFragment = updateFragment; } /** * Call back to the fragment with usages * * @param jsonArray Usages in JSON */ @Override protected void onPostExecute(JSONArray jsonArray) { if (exception != null) { updateFragment.reportBackException(exception); } else { updateFragment.reportBackUsages(jsonArray); } } /** * {@link AsyncTask} worker */ @Override protected JSONArray doInBackground(Void... arg0) { JSONArray jsonArray = new JSONArray(); try { UsageFetcher usageFetcher = new UsageFetcher(context, false); jsonArray = usageFetcher.getUsages(); // For testing //return JSONUtils.jsonStringArraytoJsonArray(FileUtils.readFile(context, R.raw.test)); } catch (Exception e) { exception = e; } // According to: // http://httpcomponents.10934.n7.nabble.com/how-do-I-close-connections-on-HttpClient-4-x-td13679.html // Apache Http library itself releases connections as needed. Also our HttpClient is a singleton, so we want it // to be reused. Therefore I'm not cleaning up in finally{} block. return jsonArray; } }