void
cancel(- [dynamic reason]
)
Implementation
void cancel([dynamic reason]) {
if (_state == SMHTaskState.success) {
return;
}
_state = SMHTaskState.canceled;
stateStream.add(_state);
SMHTaskInfo info = getTaskInfo();
if (info.cancelToken?.isCancelled == false) {
try {
info.cancelToken?.cancel(reason);
} catch (_) {}
}
if (finishCalBack != null) {
SMHError smhError = SMHError();
smhError.smhCode = 'Cancelled';
smhError.smhMessage = 'cancelled';
smhError.smhZhMessage = '取消';
smhError.error = reason;
finishCalBack!(null, smhError);
}
/// 取消下载 删除本地临时文件。
if (getTaskInfo().option == SMHTaskOption.download) {
try {
File(getTaskInfo().localPath).delete();
} catch (_) {}
}
currentQueue?.onTaskFinishHandle(this);
currentQueue = null;
receivePort.close();
isolate.kill();
}