DownloadTask class final

Information related to a download task

An equality test on a DownloadTask is a test on the taskId only - all other fields are ignored in that test



DownloadTask({String? taskId, required String url, Map<String, String>? urlQueryParameters, String? filename, Map<String, String> headers = const {}, String? httpRequestMethod, dynamic post, String directory = '', BaseDirectory baseDirectory = BaseDirectory.applicationDocuments, String group = 'default', Updates updates = Updates.status, bool requiresWiFi = false, int retries = 0, bool allowPause = false, int priority = 5, String metaData = '', String displayName = '', DateTime? creationTime})
Creates a DownloadTask
DownloadTask.fromJson(Map<String, dynamic> json)
Creates DownloadTask object from json


allowPause bool
If true, task will pause if the task fails partly through the execution, when some but not all bytes have transferred, provided the server supports partial transfers. Such failures are typically temporary, eg due to connectivity issues, and may be resumed when connectivity returns. If false, task fails on any issue, and task cannot be paused
baseDirectory BaseDirectory
Base directory
creationTime DateTime
Time at which this request was first created
directory String
Optional directory, relative to the base directory
displayName String
Human readable name for this task - use {displayName} in notification
filename String
Filename of the file to store - use {filename} in notification
group String
Group that this task belongs to
hasFilename bool
True if this task has a filename, or false if set to suggest
no setter
hashCode int
The hash code for this object.
no setterinherited
headers Map<String, String>
potential additional headers to send with the request
hostName String
Hostname represented by the url. Throws FormatException if url cannot be parsed, and returns empty string if no host in url
no setterinherited
httpRequestMethod String
HTTP request method to use
metaData String
User-defined metadata - use {metaData} in notification
post String?
Set post to make the request using POST instead of GET. In the constructor, post must be one of the following:
priority int
Priority of this task, relative to other tasks. Range 0 <= priority <= 10 with 0 being the highest priority. Not all platforms will have the same actual granularity, and how priority is considered is inconsistent across platforms.
providesProgressUpdates bool
If true, task expects progress updates
no setterinherited
providesStatusUpdates bool
If true, task expects status updates
no setterinherited
requiresWiFi bool
If true, will not download over cellular (metered) network
retries int
Maximum number of retries the downloader should attempt
retriesRemaining int
Number of retries remaining
getter/setter pairinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
taskId String
Identifier for the task - auto generated if omitted
taskType String
Returns the type of task as a String
no setteroverride
updates Updates
Type of progress updates desired
url String
String representation of the url, urlEncoded
validHttpMethods List<String>


compareTo(dynamic other) int
Returns this.priority - other.priority if not the same Returns this.creationTime - other.creationTime if priorities the same Returns 0 if other is not a Task
copyWith({String? taskId, String? url, String? filename, Map<String, String>? headers, String? httpRequestMethod, Object? post, String? directory, BaseDirectory? baseDirectory, String? group, Updates? updates, bool? requiresWiFi, int? retries, int? retriesRemaining, bool? allowPause, int? priority, String? metaData, String? displayName, DateTime? creationTime}) DownloadTask
Returns a copy of the Task with optional changes to specific fields
decreaseRetriesRemaining() → void
Decrease retriesRemaining by one
expectedFileSize() Future<int>
Return the expected file size for this task, or -1 if unknown
filePath({String? withFilename}) Future<String>
Returns the absolute path to the file represented by this task based on the Task.filename (default) or withFilename
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
toJson() Map<String, dynamic>
Creates JSON map of this object
toString() String
A string representation of this object.
withSuggestedFilename({dynamic unique = false, Future<DownloadTask> taskWithFilenameBuilder(DownloadTask task, Map<String, String> headers, bool unique) = taskWithSuggestedFilename}) Future<DownloadTask>
Returns a copy of the task with the Task.filename property changed to the filename suggested by the server, or derived from the url, or unchanged.


operator ==(Object other) bool
The equality operator.


suggestedFilename → const String
Constant used with filename field to indicate server suggestion requested