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