본문 바로가기
Flutter/Flutter FAQ

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

by 베타코드 2024. 1. 3.
반응형

질문


나는 이것에 대해 많이 찾아봤지만, 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 게시물도 작성했습니다.

반응형

댓글