パッケージ、リポジトリ、アプリカテゴリを検索

パッケージ詳細v0.10.10

workmanager

Flutter Workmanager。このプラグインを使用すると、Android および iOS でバックグラウンド作業をスケジュールできます。

AndroidiOS
30日間ダウンロード
35.3万
いいね数
2430
Pub ポイント
140

パッケージをインストール

flutter pub add workmanager

パッケージ概要

公開情報に基づく選定ガイドです。参考としてご利用ください。

Workmanager は、Android および iOS プラットフォーム上でバックグラウンドタスクをスケジューリングできる Flutter プラグインです。アプリが終了した後でも、定期的または1回限りのジョブを実行できるため、データ同期、更新の取得、バックグラウンドでのファイル処理などのタスクに最適です。ネイティブなバックグラウンド実行サービスと統合されており、システム制約内で信頼性の高いタスク実行を保証します。フォアグラウンドモードとバックグラウンドモードの両方をサポートし、実行間隔や条件をカスタマイズできます。

用途

  • スケジュールされたデータ同期
  • バックグラウンドファイル処理
  • 定期的なAPIポーリング
  • プッシュ通知の処理
  • バッテリー効率の高いタスク実行

主な機能

  • クロスプラットフォームのバックグラウンドタスク
  • 定期および一時的なジョブのサポート
  • 設定可能な実行間隔
  • ネイティブOSのバックグラウンドサービスとの統合
  • 低電力と電力最適化

適している対象

  • 信頼できるバックグラウンド実行を必要とするアプリ
  • データ集約型アプリケーション
  • オフライン優先のアプリケーション
  • ユーザーの操作なしで定期的な更新が必要なアプリ
  • Android および iOS の両方をターゲットとする開発者

注意事項

  • iOSでは、より厳格なバックグラウンド実行ポリシーのため制限されています
  • Xcodeでバックグラウンドモードを正しく設定する必要があります
  • デバイスの電力節約機能によって制限される可能性があります
  • 時間的に重要なタスクには適していません
  • 信頼性を確保するために実機でのテストが必要です

元の README

関連するソースリポジトリの README 原文のスナップショットです。最新の内容はリポジトリをご覧ください。

Flutter Workmanager

pub package pub points likes popularity GitHub Workflow Status license

Execute Dart code in the background, even when your app is closed (Android and iOS). On macOS, background tasks run while the app is running or backgrounded and the Mac is awake. Perfect for data sync, file uploads, and periodic maintenance tasks.

⚠️ Experimental web support now exists via workmanager_web (Service Worker + Web Worker based background execution). See the Web (experimental) page and the package README for honest limitations and how to test it in Chrome.

📖 Documentation

Get started with background tasks in Flutter:

→ Quick Start Guide - Installation and setup

→ API Documentation - Complete Dart API reference

→ Debugging Guide - Troubleshooting help

→ Troubleshooting Guide - Why tasks stop after app close (OEM battery optimization, constraints, verification)

🎯 Use Cases

Background tasks are perfect for:

  • Sync data from API - Keep your app's data fresh
  • Upload files in background - Reliable file uploads
  • Clean up old data - Remove old files and cache
  • Fetch notifications - Check for new messages
  • Database maintenance - Optimize and clean databases

⏱ Long-Running Tasks (Android)

For work that takes longer than the regular background execution window (bulk uploads/downloads, ML processing), Android tasks can run as a foreground service with a persistent notification. Pass a foregroundServiceConfig to registerOneOffTask or registerPeriodicTask:

await Workmanager().registerOneOffTask(
  "upload-task",
  "upload_files",
  foregroundServiceConfig: ForegroundServiceConfig(
    notificationTitle: "Uploading files",
    notificationText: "Your files are being uploaded",
  ),
);

See the Quick Start guide for details and platform caveats.

🛑 Cancelling Running Work (Android)

cancelByUniqueName, cancelByTag and cancelAll stop the WorkManager worker immediately, but the Dart callback that is currently running keeps executing unless it reacts to the stop. Pass an onTaskStopped handler to executeTask inside your callbackDispatcher to be notified when a running task is stopped before it finishes:

@pragma('vm:entry-point')
void callbackDispatcher() {
  Workmanager().executeTask(
    (taskName, inputData) async {
      return true;
    },
    onTaskStopped: (taskName, stopReason) async {
      // Mark the task as cancelled / persist state, then return promptly.
    },
  );
}

The handler receives the task name and the WorkManager stop reason (cancelledByApp, timeout, preempt, ...); on Android < 12 the reason is StopReason.unknown. Android-only — iOS has no way to stop a running task. See the Customization guide for details.

🐛 Issues & Support

🚀 Example App

See the example folder for a complete working demo with all task types and platform configurations.

カテゴリー

依存関係

依存関係一覧 5 件

ソースリポジトリ

このパッケージを使用しているプロジェクト