workmanager
Flutter Workmanager. This plugin allows you to schedule background work on Android and iOS.
0.10.9
124K downloads/mo
#1038 most downloaded on pub.dev
fluttercommunity/flutter_workmanager
What this package is like to depend on
Last release 4 days ago
20 Aug 2026
Release timing varies
gaps range from 2 weeks to 1.7 years
Nearly every release is documented
notes for 57 of 60 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
68 releases · first in 2019
21 releases in the last 12 months
see the full history below
Release timeline
68 releases · Jul 2019 to Aug 2026Releases
latest 60 of 68-
0.10.920 Aug 2026Release notes
Open source →workmanager_android v0.10.8 — bounded Dart engine init, main-thread stops (#732, #735)
- One-off work no longer stays RUNNING forever on Android 16 when the app is backgrounded mid-task: a new 30-second initialization watchdog fails the worker visibly instead of hanging silently.
- Worker stops (and
onTaskStoppedcallbacks) now run on the main thread — fixes the spurious@UiThreadexception notification on every cancel and makes the #705 stop-reason feature actually fire on Android. - Engine teardown made idempotent across watchdog / task-result / stop paths.
workmanager v0.10.9
- Dependency bump:
workmanager_android ^0.10.8.
Release notes
Open source →- FIX(android): one-off work no longer stays RUNNING forever on Android 16 when the app is backgrounded during task execution (#732).
-
0.10.819 Aug 2026Release notes
Open source →workmanager_android v0.10.7 — manifest-declaration check for FGS permissions (#731, #733)
- Expedited work (and other foreground-service features) now validate against the merged manifest declaration instead of the runtime permission grant state.
- On Android 16+ a foreground-service permission can be revoked or denied at runtime even when declared — the old check then false-positived and threw, killing valid expedited work. Declared permission now passes regardless of grant state; a genuinely missing declaration still fails loudly at registration.
workmanager v0.10.8
- Dependency bump:
workmanager_android ^0.10.7.
Release notes
Open source →- FIX(android): one-off work no longer stays RUNNING forever on Android 16 when the app is backgrounded during task execution (#732).
2026-08-19
Changes
Packages with breaking changes:
- There are no breaking changes in this release.
Packages with other changes:
Packages with dependency updates only:
Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.
workmanager-v0.10.8
-
0.10.704 Aug 2026Release notes
Open source →- chore(release): publish packages
- docs: fix work-info wording, document FGS opt-in + web messaging
- work-info.mdx: replace 'the maintainer explicitly declined to surface
it' with a neutral design statement (docs.page garbling). - troubleshooting.mdx: new section for the Play Console
FOREGROUND_SERVICE_DATA_SYNC declaration/video requirement — what it
means, when to opt in, and that a missed opt-in throws at registration. - web.mdx: document the page<->worker messaging API (sendMessageToWorker,
workerMessages, sendToPage) and link the live demo. - workmanager_impl.dart: dartdoc note + docs.page link on
registerOneOffTask's foregroundServiceConfig (dataSync opt-in).
Release notes
Open source →- FIX(android): expedited work no longer fails when Android 16 revokes a foreground-service permission at runtime (#731).
2026-08-04
Changes
Packages with breaking changes:
- There are no breaking changes in this release.
Packages with other changes:
Packages with dependency updates only:
Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.
workmanager-v0.10.7
-
0.10.604 Aug 2026Release notes
Open source →- FIX(android): make FOREGROUND_SERVICE_DATA_SYNC opt-in (#725).
- FEAT(android): fail loudly when a foreground service permission is missing from the merged manifest.
-
0.10.503 Aug 2026Release notes
Open source →- FIX(android): build with AGP 9 and android.builtInKotlin=false (#722).
2026-08-03
Changes
Packages with breaking changes:
- There are no breaking changes in this release.
Packages with other changes:
workmanager-v0.10.5workmanager_android-v0.10.4workmanager_apple-v0.9.10workmanager_platform_interface-v0.10.4workmanager_linux-v0.1.1+1workmanager_web-v0.1.3+1
Packages with dependency updates only:
Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.
workmanager_linux-v0.1.1+1workmanager_web-v0.1.3+1
-
0.10.403 Aug 2026 -
0.10.303 Aug 2026Release notes
Open source →- FEAT: work status observation — getWorkInfo across platforms (fixes #194) (#719).
-
0.10.203 Aug 2026 -
0.10.102 Aug 2026 -
0.10.1+103 Aug 2026Nothing published for this version
-
0.10.1+203 Aug 2026Nothing published for this version
-
0.10.002 Aug 2026Release notes
Open source →- BREAKING FEAT: align minimum Flutter version to 3.38 across packages (prep for 0.10.0) (#701).
-
0.10.0+102 Aug 2026Release notes
Open source →- FIX(android): notify running callbacks when work is cancelled (fixes #432) (#705).
-
0.9.302 Aug 2026Release notes
Open source →- FIX(ios): run one-off tasks on the main engine to avoid release crash (fixes #653) (#697).
- FEAT(ios): add BGContinuedProcessingTask support (fixes #638) (#700).
- FEAT(android): long-running workers via foreground service (#698).
-
0.9.202 Aug 2026 -
0.9.2+102 Aug 2026Nothing published for this version
-
0.9.101 Aug 2026Release notes
Open source →- FEAT: support typed Lists/Maps in inputData (fixes #426) (#690).
- FEAT: macOS support via NSBackgroundActivityScheduler (fixes #424) (#689).
-
0.9.1+101 Aug 2026Release notes
Open source →- FIX(ios): auto-register BGTask launch handlers for scheduled tasks (#692).
-
0.9.1+202 Aug 2026Release notes
Open source →- FIX: Android initialization bug and iOS 14 availability annotations (#647).
-
0.9.031 Jul 2025Release notes
Open source →- REFACTOR: replace debug mode with extensible hook-based system (#630).
- REFACTOR: Migrate internal interfaces to pigeon (#613).
- FIX: resolve critical null handling crashes from contributor reports (#626).
- FEAT: Migrate to federated plugin architecture (#611).
- BREAKING FIX: resolve issue #622 - periodic tasks running at incorrect frequencies (#628).
-
0.9.0+206 Aug 2025Release notes
Open source →- FIX: Android initialization bug and iOS 14 availability annotations (#647).
-
0.9.0+331 Aug 2025Release notes
Open source →- FIX: remove kotlin-android since AGP 9 supports it https://github.com/fluttercommunity/flutter_workmanager/issues/667 (#682).
- FIX: Failed host lookup, by bumping androidx.work:work-runtime to 2.11.2 and Android minSdkVersion to 23 (#679).
- FIX: NullPointerException by replacing companion FlutterLoader with FlutterInjector singleton (#678).
-
0.9.0+401 Aug 2026Release notes
Open source →- FIX(ios): pass taskName to callback and honor initialDelay for one-off tasks (#687).
-
0.8.001 Jul 2025Release notes
Open source →Major Architecture Changes
- BREAKING: Migrate to federated plugin architecture for better platform extensibility
- BREAKING: Platform-specific implementations moved to separate packages
- Create
workmanager_platform_interfacefor shared platform interface - Create
workmanager_androidpackage with Android WorkManager implementation - Create
workmanager_applepackage with iOS BGTaskScheduler implementation - Foundation for future macOS support using NSBackgroundActivityScheduler
Breaking Changes
- BREAKING: Enum values changed from snake_case to camelCase:
NetworkTypevalues:not_required→notRequired,not_roaming→notRoaming,metered→metered(unchanged)OutOfQuotaPolicyvalues:run_as_non_expedited_work_request→runAsNonExpeditedWorkRequest,drop_work_request→dropWorkRequest
- BREAKING: Removed JSON serialization for inputData - now uses native Map transfer for better performance and type safety
New Features
- Android: Added
isScheduledByUniqueNamemethod to check if a periodic task is scheduled by its unique name (Android only) - Added comprehensive integration tests for better reliability
Bug Fixes
- iOS: Fixed
initialDelaySecondsparameter handling - was previously ignored - Android: Fixed NullPointerException when
isInDebugModewas not properly initialized - Fixed inputData type handling across platforms - now properly supports all primitive types and lists
- iOS: Fixed compilation errors with Map handling
- iOS: Fixed swapped constraints bug for requiresNetworkConnectivity and requiresExternalPower by @thegriffen (from PR #562)
- Android: Fixed v2 embedding import in BackgroundWorker by @jogapps (from PR #595)
Improvements
- Updated to Flutter 3.32 and flutter_lints 6.0.0
- Android: Updated target SDK to 35
- Improved CI/CD with Android emulator caching for faster builds
- Better error handling and type safety throughout the codebase
- iOS: Add Privacy Manifest for App Store compliance by @navaronbracke (from PR #555)
- iOS: Replace print statements with proper os_log for better logging
- iOS: printScheduledTasks now returns String instead of void by @yarith28 (from PR #585)
- Android: Fix documentation formatting and typo in BackgroundWorker by @jogapps (from PR #595)
-
0.7.024 Jun 2025Release notes
Open source →- BREAKING: Minimum Dart SDK bumped to 3.2.0
- BREAKING: Minimum Flutter SDK bumped to 3.16.0
- BREAKING: Minimum iOS deployment target bumped to 13.0
- Android: Update to Android Gradle Plugin 8.10.1
- Android: Update to Gradle 8.11.1
- Android: Update Kotlin to 2.1.0
- Android: Update compile SDK to 35
- Android: Update target SDK to 35
- Android: Update NDK to 27.0.12077973
- Android: Update Java compatibility to version 17
- iOS: Update Swift version to 5.0
- Dev dependencies: Update to latest versions (flutter_lints 5.0.0, mockito 5.4.4, etc.)
- CI: Modernize GitHub Actions workflows with latest action versions
- CI: Add Flutter caching for faster builds
- CI: Update test environments (iPhone 15, Android API 34)
- Fix win32 dependency compatibility issues for Dart 3.8+
-
0.6.029 May 2025Release notes
Open source →- Android: Removed jetifier
- Android: Removed V1 plugin APIs - this is now a Android V2 plugin only
-
0.5.228 Sep 2023Release notes
Open source →- Android: Bump to workmanager 2.8.1
- Android: Move to Android Gradle Plugin 8.x
- Android: Migrate away from ResolvableFuture (#399).
-
0.5.120 Oct 2022Release notes
Open source →- Call DartPluginRegistrant.ensureInitialized when isolate is starting
- Documentation and example update to fix (#374) WorkManager not working when App is obfuscated or using Flutter 3.1+
-
0.5.015 May 2022Release notes
Open source →- Android: Remove jetifier from example
- Restore compatibility with Flutter 3.0.0, thank you @Cwiesen and @sunalwaysknows
- Replaces
pedanticchecks withflutter_lints - Ability to specify custom tasks (and custom background work) for iOS was added. Thank you @tuyen-vuduc
-
0.5.0-dev.830 Jan 2022 pre-releaseRelease notes
Open source →- iOS: Add implementations for cancelCall and cancelByUniqueName
- Android: Bump to workmanager 2.7.1 to support Android 12
- Android: Add support for expedited background work (a
OutOfQuotaPolicyneeds to be specified)
-
0.5.0-dev.708 Sep 2021 pre-releaseRelease notes
Open source →- Android: Use
Numbertype for specifying the callback handler key & convert to Long - Android: Bump WorkManager dependency to 2.6.0
- iOS: Restore correct NetworkType parser which did not set
requiresNetworkConnectivitycorrectly.
- Android: Use
-
0.5.0-dev.623 Jul 2021 pre-releaseRelease notes
Open source →- Resolves issues on iOS which prevented native calls from being parsed correctly.
-
0.5.0-dev.522 Jul 2021 pre-release -
0.5.0-dev.420 Jun 2021 pre-release -
0.5.0-dev.316 Jun 2021 pre-releaseRelease notes
Open source →- Documentation for BGTaskScheduler added
- Throw standard errors when scheduling a task on iOS failed
-
0.5.0-dev.210 Jun 2021 pre-releaseRelease notes
Open source →- iOS: Modern-style task processing using BGTaskScheduler is now supported. Please see the updated instructions in IOS_SETUP.md.
-
0.5.0-dev.108 Jun 2021 pre-release -
0.4.107 Jun 2021Release notes
Open source →- Bumps Android dependencies (Kotlin, AGP, workmanager 2.5.0)
- Android: Remove jcenter reference
- Android: Build using compile/target SDK 30.
-
0.4.018 Apr 2021 -
0.3.017 Apr 2021Release notes
Open source →- BREAKING CHANGE: The Dart side is now instantiated using the factory pattern for easier mocking & testing.
-
0.2.412 Apr 2021Release notes
Open source →- Restore iOS compatibility for Flutter 1.20
- Migrate the iOS project using Xcode 12
-
0.2.303 Jul 2020Release notes
Open source →- Define iOS module so that host apps without use_frameworks! setting can consume the iOS module
- wrap engine.destroy() call in isInitialized #182
-
0.2.205 Mar 2020 -
0.2.126 Feb 2020Release notes
Open source →- Android:
- Fix example building
- Cleanup FlutterEngine when job is stopped or cancelled #140,
- Android:
-
0.2.006 Jan 2020Release notes
Open source →- FEAT(web): bidirectional message channel between page and background worker (#708).
2026-08-04
Changes
Packages with breaking changes:
- There are no breaking changes in this release.
Packages with other changes:
Packages with dependency updates only:
Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.
workmanager-v0.10.6
Release notes
Open source →- Android:
- Adding support for the
Android v2 embedding.
See more details in the Android setup guide.
- Adding support for the
-
0.1.524 Nov 2019Release notes
Open source →- Android:
- The result was not correctly mapped to a RETRY when returning false from a background task
- Android:
-
0.1.428 Oct 2019Release notes
Open source →- Android:
- Using Backoff Policy in conjunction with device idle constraint is an illegal action.
Backoff policy is now nullable in the Android code. See issue #107.
- Using Backoff Policy in conjunction with device idle constraint is an illegal action.
- Android:
-
0.1.315 Oct 2019Release notes
Open source →- FEAT: work status observation — getWorkInfo across platforms (fixes #194) (#719).
2026-08-03
Changes
Packages with breaking changes:
- There are no breaking changes in this release.
Packages with other changes:
workmanager-v0.10.2workmanager_android-v0.10.2workmanager_apple-v0.9.8workmanager_platform_interface-v0.10.2workmanager_web-v0.1.2
Release notes
Open source →- iOS & Android:
- Result of
BackgroundTaskHandlernow correctly returns to background method channel
- Result of
- iOS:
- Invoking
iOSPerformFetchmethod now no longer crashes - The iOS example app now implements
setPluginRegistrantCallbackas described in our docs, making it possible to access other plugins during a backround fetch - Dart debug logging is now visible again in Xcode's console
- Invoking
-
0.1.204 Oct 2019Release notes
Open source →- FEAT(android): expedited work support (#715).
2026-08-03
Changes
Packages with breaking changes:
- There are no breaking changes in this release.
Packages with other changes:
workmanager_android-v0.10.1workmanager_apple-v0.9.7workmanager_platform_interface-v0.10.1workmanager-v0.10.1+2workmanager_web-v0.1.1+1
Packages with dependency updates only:
Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.
workmanager-v0.10.1+2workmanager_web-v0.1.1+1
-
0.1.111 Sep 2019Release notes
Open source →- FEAT(linux): workmanager_linux — systemd-based background execution (fixes #324) (#716).
2026-08-03
Changes
Packages with breaking changes:
- There are no breaking changes in this release.
Packages with other changes:
workmanager-v0.10.3workmanager_android-v0.10.3workmanager_apple-v0.9.9workmanager_platform_interface-v0.10.3workmanager_web-v0.1.3
-
0.1.006 Sep 2019Release notes
Open source →- First API stable release
- Android:
- Improved debug notification with result message first
- Updated Installation README
- iOS:
- 🐞 Improved debug notification delivery when the app is in the background.
- Updated Installation README
-
0.0.1520 Aug 2019Release notes
Open source →- iOS: 🐞 Make sure all the implementers plugins are available in the background isolate by registering them first.
This requires the user to provide us with the generated registry in theAppDelegate - iOS: 📝 specified minimum deployment target of iOS 10 (with Swift 4.2)
- iOS: 🐞 Make sure all the implementers plugins are available in the background isolate by registering them first.
-
0.0.1414 Aug 2019 -
0.0.1314 Aug 2019Release notes
Open source →- [‼️ BREAKING change] You will need to clear the preferences or re-install the App if you had registered jobs already on Android.
- Android:
- Thanks to @vanlooverenkoen
- 🐞 cancelling all task would have failed before this version
- 📝 Update documentation to be a bit more clear about the minimum frequency a periodic can be scheduled
- Better debug notification support:
- Emoji's to quickly see if a task ran successful
- Elapsed time
- Collapsing notifications
- General Internal API renames to improve readability
- Thanks to @vanlooverenkoen
- iOS
- ⬆️ Separate UserDefaults for the plugin
- 🐞 Memory leak resources cleanup
- 🐞 Result mapping Dart -> Swift was wrong
- Better debug notification support:
- Emoji's to quickly see if a task ran successful
- Elapsed time
- Collapsing notifications
-
0.0.1208 Aug 2019 -
0.0.1103 Aug 2019Release notes
Open source →- Better README and docs
- Everything now refers to the top level callback as the callbackDispatcher
- Some typo's
- Link to Medium blog post
- Adds unit tests to the project since the many issues with enum parsing
- Fixes an issue with the parsing of the
NetworkType
- Fixes an issue with the parsing of the
- Project restructure to a
srcfolder
- Better README and docs
-
0.0.1002 Aug 2019Release notes
Open source →- I should test a little better before publishing to pub.dev.
- Fixes all enum parsing issues with
ExistingWorkPolicyandBackoffPolicy
- Fixes all enum parsing issues with
- I should test a little better before publishing to pub.dev.
-
0.0.902 Aug 2019 -
0.0.802 Aug 2019Release notes
Open source →- A bugfix were parsing of the
ExistingWorkPolicyandBackoffPolicywent rogue. Addresses #9
- A bugfix were parsing of the
-
0.0.701 Aug 2019Release notes
Open source →- This version is the first version to support iOS with the help of the Background Fetch API.
- Only recurring tasks can be scheduled by iOS.
- If you want to respond to iOS background triggers you should add the extra case
Workmanager.iOSBackgroundTaskto your switch case.
- [‼️ BREAKING change]
Workmanager.defaultCallbackDispatcherbecomesWorkmanager.executeTask
- This version was used as referenced in the Medium blogpost
- This version is the first version to support iOS with the help of the Background Fetch API.