TaskHandler class

A controller for a specific background task.

Returned by NativeWorkManager.enqueue to allow tracking progress and completion of a specific task without manually filtering global streams.

Usage

final handler = await NativeWorkManager.enqueue(
  taskId: 'download-video',
  worker: NativeWorker.httpDownload(url: '...'),
);

// 1. Check if OS accepted the task
if (handler.scheduleResult != ScheduleResult.accepted) {
  print('Failed to schedule: ${handler.scheduleResult}');
  return;
}

// 2. Listen to progress for THIS task only
handler.progress.listen((p) {
  print('Progress: ${p.progress}% (${p.networkSpeedHuman})');
});

// 3. Wait for final result
final event = await handler.result;
if (event.success) {
  print('Finished! Result: ${event.resultData}');
}
Annotations

Constructors

TaskHandler({required String taskId, required ScheduleResult scheduleResult})
const

Properties

events → Stream<TaskEvent>
A stream of lifecycle events for this specific task.
no setter
hashCode → int
The hash code for this object.
no setterinherited
progress → Stream<TaskProgress>
A stream of progress updates for this specific task.
no setter
result → Future<TaskEvent>
A future that completes when the task finishes (either success or failure).
no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
scheduleResult → ScheduleResult
The result of the scheduling request.
final
taskId → String
The unique ID of the task.
final

Methods

cancel() → Future<void>
Cancel this task.
getStatus() → Future<TaskStatus?>
Get the current status of this task.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() → String
A string representation of this object.
inherited

Operators

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