code: public synchronized DownloadTask addTag(int key, Object value) {
          if (keyTagMap == null) {
              synchronized (this) {
                  if (keyTagMap == null) keyTagMap = new SparseArray<>();
              }
          }
  
          keyTagMap.put(key, value);
          return this;
      }
docs: Add the {@code tag} identify with the {@code key} you can use it through {@link #getTag(int)}
  
  @param key   the identify of the tag.
  @param value the value of the tag.