Hướng dẫn chạy tác vụ ngầm (Background Service) & WorkManager trong Flutter

2026-07-24 8 phút đọcBởi Uwmee Software

Làm sao để ứng dụng Flutter của bạn có thể **tự động định vị GPS ngầm, tải dữ liệu định kỳ hoặc gửi thông báo nhắc nhở** ngay cả khi người dùng đã vuốt tắt ứng dụng hoàn toàn? Giải pháp chính là lập trình **Background Task (Tác vụ ngầm) với WorkManager & Isolates**.

1. Cơ chế Isolate trong Flutter khi chạy ngầm

Động cơ Dart trong Flutter chạy trên luồng đơn (Single Thread). Khi ứng dụng bị tắt, UI Thread bị đóng. Để chạy ngầm, bạn phải tạo một **Background Isolate** độc lập không chứa giao diện UI để hệ điều hành cấp phát bộ nhớ chạy ngầm.

2. 3 Thư viện chạy ngầm mạnh mẽ nhất trong Flutter

1. workmanager (Tác vụ định kỳ Periodic Task)

Thích hợp cho các tác vụ định kỳ như "Mỗi 1 giờ tự kiểm tra dữ liệu mới từ Server". Tối ưu pin và được hệ điều hành Android/iOS quản lý thông minh.

import 'package:workmanager/workmanager.dart';

@pragma('vm:entry-point')
void callbackDispatcher() {
  Workmanager().executeTask((task, inputData) async {
    print("Đang chạy tác vụ ngầm: $task");
    return Future.value(true);
  });
}

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  Workmanager().initialize(callbackDispatcher, isInDebugMode: true);
  Workmanager().registerPeriodicTask("task-1", "simplePeriodicTask");
  runApp(const MyApp());
}

2. flutter_background_service (Chạy liên tục Foreground Service)

Thích hợp cho các app phát nhạc, app chạy bộ GPS cần thanh thông báo cố định trên điện thoại.

3. firebase_messaging (Bắn thông báo đẩy ngầm)

Nhận và xử lý dữ liệu từ Firebase FCM Push Notification khi app đang chạy ngầm.

3. Lưu ý sống còn để không bị hệ điều hành diệt (Kill Task)

  • Thêm từ khóa @pragma('vm:entry-point') phía trên hàm callback ngầm để compiler không xóa mất hàm khi obfuscate code.
  • Xin quyền chống tối ưu pin (Battery Optimization Exception) trên Android đối với các app chạy ngầm liên tục.

Kết luận

Lập trình chạy ngầm đúng cách giúp ứng dụng duy trì kết nối mượt mà mà không làm hao pin người dùng. Uwmee Software phát triển các giải pháp app Flutter chạy ngầm ổn định 24/7. Đọc thêm bài viết test Push Notification với 12 Tester.

Cần vượt Closed Testing nhanh chóng?

Đội 12+ tester thật của Uwmee tương tác hằng ngày đủ 14 ngày — trọn gói chỉ 300.000đ, chạy lại miễn phí nếu không đạt.

Câu hỏi thường gặp