Flutter/Flutter FAQ

Flutter 플러터에서 백그라운드 작업을 예약하는 방법은 무엇인가요?, How to schedule background tasks in Flutter?

독학코딩 2024. 1. 3. 08:54
반응형

질문


나는 이것에 대해 많이 찾아봤지만, Flutter에서 백그라운드 작업을 예약하는 패키지나 방법을 찾지 못했습니다. Android에서는 WorkManager, AlarmManager와 같은 것이 있습니다.

MethodChannel을 사용하여 해당 클래스에 액세스할 수 있다는 것은 알고 있지만, iOS와 Android 모두에서 작동하는 것을 원합니다.

(모바일 프레임워크가 백그라운드 작업을 예약할 수 있는 능력이 없다는 것은 매우 실망스럽습니다).


답변


이 문제를 해결하는 방법을 설명하는 Medium 블로그 게시물이 있습니다.
그러나 우리는 설정하는 것이 너무 복잡하다고 생각하여 플러그인을 만들었습니다. 이 플러그인이 도움이 될 것입니다.

//상위 레벨 함수 또는 정적 함수를 제공합니다.
//이 함수는 Android에서 호출되며 작업을 등록할 때 제공한 값을 반환합니다.
//아래 참조
void callbackDispatcher() {
  Workmanager.executeTask((task) {
    print("Native echoed: $task");
    return Future.value(true);
  });
}

Workmanager.initialize(
    callbackDispatcher, //상위 레벨 함수입니다.
    isInDebugMode: true //활성화되면 작업이 실행될 때마다 알림이 게시됩니다. 작업 디버깅에 유용합니다.
)

우리는 Android의 Workmanager와 iOS의 performFetch를 지원합니다.


현재는 Android 프로젝트에서만 작동하지만, 곧 iOS도 지원할 예정입니다.
사용 가능해지면 이 답변을 업데이트하겠습니다.


이제 iOS도 지원합니다. 아직 초기 알파 버전이지만 시도해 보세요.
우리는 보충적인 Medium 게시물도 작성했습니다.

반응형