public void handleRetainedTask(Task task, OnTaskCompleteListener taskCompleteListener) {
    this.taskCompleteListener = taskCompleteListener;
    setupProgressDialog(taskCompleteListener.getContext());

    // Restore retained task and attach it to tracker (this)
    mAsyncTask = task;
    mAsyncTask.setProgressTracker(this);
  }
 public void setupTask(Task asyncTask) {
   // Keep task
   mAsyncTask = asyncTask;
   // Wire task to tracker (this)
   mAsyncTask.setProgressTracker(this);
   // Start task
   mAsyncTask.execute();
 }
  public Object retainTask() {
    // Close progress dialog
    mProgressDialog.cancel();

    // Detach task from tracker (this) before retain
    if (mAsyncTask != null) {
      mAsyncTask.setProgressTracker(null);
    }
    // Retain task
    return mAsyncTask;
  }