/**
  * This method removes listener from task when service disconnected.
  *
  * @param activityName name of activity, which the task attached to
  */
 public void disconnected(String activityName) {
   LogUtils.d(TAG, "disconnected,activityName = " + activityName);
   BaseAsyncTask task = getActivityInfo(activityName).getTask();
   if (task != null) {
     task.removeListener();
   }
 }
 /**
  * This method lists files of certain directory by starting a new ListFileTask.
  *
  * @param activityName name of activity, which the ListFileTask attached to
  * @param path the path of certain directory
  * @param listener listener of the ListFileTask
  */
 public void listFiles(String activityName, String path, OperationEventListener listener) {
   LogUtils.d(TAG, "listFiles,activityName = " + activityName + ",path = " + path);
   /*if (isBusy(activityName)) {
        LogUtils.d(TAG, "listFiles,task is busy. ");
        listener.onTaskResult(OperationEventListener.ERROR_CODE_BUSY);
   } else {*/
   if (isBusy(activityName)) {
     LogUtils.d(TAG, "listFiles, cancel other background task...");
     BaseAsyncTask task = getActivityInfo(activityName).getTask();
     if (task != null) {
       task.removeListener();
       task.cancel(true);
     }
   }
   LogUtils.d(TAG, "listFiles,do list.");
   FileInfoManager fileInfoManager = getActivityInfo(activityName).getFileInfoManager();
   int filterType = getActivityInfo(activityName).getFilterType();
   if (fileInfoManager != null) {
     LogUtils.d(TAG, "listFiles fiterType = " + filterType);
     BaseAsyncTask task =
         new ListFileTask(getApplicationContext(), fileInfoManager, listener, path, filterType);
     getActivityInfo(activityName).setTask(task);
     task.execute();
   }
   // }
 }