library/src/main/java/com/liulishuo/filedownloader/util/FileDownloadSerialQueue.java
public void enqueue(BaseDownloadTask task) {
        synchronized (finishCallback) {
            if (paused) {
                pausedList.add(task);
                return;
            }

            try {
                mTasks.put(task);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
public void enqueue(BaseDownloadTask task) {
        synchronized (finishCallback) {
            if (paused) {
                pausedList.add(task);
                return;
            }

            try {
                mTasks.put(task);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
Enqueues the given task sometime in the serial queue. If the {@code task} is in the head of
the serial queue, the {@code task} will be started automatically.