package com.jobmineplus.mobile.widgets; import android.app.Activity; import android.os.AsyncTask; public abstract class JbmnplsAsyncTaskBase<TParams, TProgress, TResult> extends AsyncTask<TParams, TProgress, TResult>{ //=============== // Declaration //=============== private Activity activity; private boolean isRunning = false; //=============== // Constructor //=============== public JbmnplsAsyncTaskBase(Activity activity) { attach(activity); } //================== // Public Methods //================== public void attach(Activity activity) { this.activity = activity; if (activity == null) { onActivityDetached(); } else { onActivityAttached(); } } public void detach() { this.activity = null; } public boolean isRunning() { return isRunning; } //===================== // Protected Methods //===================== protected void onActivityAttached() {} protected void onActivityDetached() {} protected Activity getActivity() { return activity; } //==================== // Override Methods //==================== @Override protected void onPreExecute() { isRunning = true; } @Override protected void onPostExecute(TResult result) { isRunning = false; } @Override protected void onCancelled() { isRunning = false; } }