Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class AsynkTaskJob<T> {
- private CustomAsyncTask mCustomAsyncTask;
- private Context context;
- public AsynkTaskJob(Job job) {
- mCustomAsyncTask = new CustomAsyncTask(job);
- }
- public AsynkTaskJob( Context context, Job job) {
- mCustomAsyncTask = new CustomAsyncTask(job, context);
- }
- public AsynkTaskJob( Context context, String loadingMessage, Job job) {
- mCustomAsyncTask = new CustomAsyncTask(job, context, loadingMessage);
- }
- public void start() {
- mCustomAsyncTask.execute();
- }
- // CustomAsyncTask
- private class CustomAsyncTask extends AsyncTask<Void, Void, T> {
- private Job<T> mJob;
- private Exception mException;
- private String loadingMessage = null;
- private Context context;
- private DialogUtils.DialogLoader dialogLoader;
- private CustomAsyncTask(Job job) {
- mJob = job;
- }
- public CustomAsyncTask(Job job, Context context) {
- this.context = context;
- mJob = job;
- }
- public CustomAsyncTask(Job job, Context context, String loadingMessage) {
- this.context = context;
- this.loadingMessage = loadingMessage;
- mJob = job;
- }
- @Override
- protected void onPreExecute() {
- super.onPreExecute();
- if(context != null){
- dialogLoader = DialogUtils.showLoader(context, loadingMessage);
- dialogLoader.setCancelable(false);
- }
- }
- @Override
- protected T doInBackground(Void... voids) {
- try {
- return mJob.onStart();
- } catch (Exception e) {
- e.printStackTrace();
- mException = e;
- return null;
- }
- }
- @Override
- protected void onPostExecute(T type) {
- super.onPostExecute(type);
- if (mException == null)
- mJob.onComplete(type);
- else
- mJob.onError(mException);
- if(dialogLoader != null)
- dialogLoader.dismiss();
- }
- }
- // The Job interface
- public interface Job<T> {
- public T onStart() throws Exception;
- // public void onStart() throws Exception;
- public void onComplete(T object);
- public void onError(Exception e);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement