Flutter Workmanager
Background task execution for Flutter apps
Execute Dart code in the background, even when your app is closed. Perfect for data sync, file uploads, and periodic maintenance tasks.
Key Features
- Background Task Execution: Execute Dart code in the background on both Android and iOS platforms
- Multiple Task Types: Support for one-off tasks, periodic tasks, and iOS processing tasks
- Platform Constraints: Configure network, battery, charging, and other constraints for task execution
- Debug Support: Built-in debugging with notifications to track background task execution
Supported Platforms
Platform | Support | Notes |
---|---|---|
Android | ✅ Full | All WorkManager features supported |
iOS | ✅ Full | Background Fetch + BGTaskScheduler APIs |
macOS | 🚧 Planned | Future support through NSBackgroundActivityScheduler |
Web | ❌ Not supported | Background execution not available |
Windows/Linux | ❌ Not supported | No background task APIs |
Common Use Cases
Use Case | Description |
---|---|
Sync data from API | Automatically fetch and sync data from your backend API |
Upload files in background | Upload photos, documents when network conditions are optimal |
Clean up old data | Remove old files, cache data, and maintain app performance |
Fetch notifications | Check for new notifications and messages from your server |
Database maintenance | Perform database cleanup and optimization tasks |
Architecture
This plugin uses a federated architecture:
workmanager
- Main package that provides the unified APIworkmanager_android
- Android implementation using WorkManagerworkmanager_apple
- iOS/macOS implementation using BGTaskSchedulerworkmanager_platform_interface
- Shared interface for platform implementations
All packages are automatically included when you add workmanager
to pubspec.yaml.
Get Started
Ready to add background tasks to your Flutter app?
→ Quick Start Guide - Get up and running in minutes
→ API Documentation - Complete Dart API reference
Example Project
See a complete working demo: Example App →