본문 바로가기
Flutter/Package

플러터에서 flutter_background_service 패키지 사용 방법 및 옵션 완벽 가이드

by Maccrey Coding 2024. 8. 12.
반응형

 

Flutter는 빠르게 성장하는 모바일 앱 개발 프레임워크로, 다양한 플러그인과 패키지를 통해 기능을 확장할 수 있습니다.

그 중에서도 flutter_background_service 패키지는 앱이 백그라운드에서도 서비스를 계속 실행할 수 있게 도와주는 유용한 도구입니다.

이 블로그에서는 flutter_background_service 패키지의 사용 방법과 옵션에 대해 초보자도 쉽게 이해할 수 있도록 단계별로 설명하겠습니다.

패키지 소개

flutter_background_service 패키지는 Flutter 앱이 백그라운드에서도 계속해서 작업을 수행할 수 있게 해주는 패키지입니다.

일반적으로 백그라운드에서 작업을 계속해야 할 때 사용되며, 예를 들어 위치 추적, 알림 주기 확인, 또는 주기적인 데이터 동기화 등에 활용될 수 있습니다.

패키지 설치

  1. pubspec.yaml 수정
  2. 먼저, 프로젝트의 pubspec.yaml 파일을 열고 flutter_background_service 패키지를 의존성에 추가합니다.
dependencies:
  flutter:
    sdk: flutter
  flutter_background_service: ^1.0.0

 

  • 여기서 버전 번호는 최신 버전을 확인하여 적절히 수정해 주세요.
  • 패키지 설치
  • 터미널에서 다음 명령어를 실행하여 패키지를 설치합니다.
flutter pub get

 

기본 설정 및 초기화

1. 서비스 초기화

flutter_background_service 패키지를 사용하기 위해서는 앱의 main 함수에서 서비스를 초기화해야 합니다.

import 'package:flutter/material.dart';
import 'package:flutter_background_service/flutter_background_service.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  FlutterBackgroundService.initialize(onStart);
  runApp(MyApp());
}

void onStart() {
  WidgetsFlutterBinding.ensureInitialized();
  final service = FlutterBackgroundService();
  service.onDataReceived.listen((event) {
    // Handle data received from the service
  });
}

 

2. Android 설정

AndroidManifest.xml 파일을 열어 백그라운드 작업을 허용하도록 설정합니다.

<service
    android:name="me.piebridge.battery.SmartBatteryService"
    android:permission="android.permission.BIND_JOB_SERVICE"
    android:exported="true"/>

이 설정은 Android 8.0 (API 26) 이상의 버전에서 필요합니다.

서비스 구현

1. 서비스 코드 작성

서비스에서 실행할 코드를 작성합니다. 예를 들어, 매 15분마다 로그를 기록하는 간단한 예제를 보여드리겠습니다.

void onStart() {
  WidgetsFlutterBinding.ensureInitialized();
  final service = FlutterBackgroundService();

  service.onDataReceived.listen((event) {
    // Handle data received from the service
  });

  Timer.periodic(Duration(minutes: 15), (timer) {
    // This code will be executed every 15 minutes
    print('Service is running in the background');
  });
}

 

2. 서비스 시작

Flutter 앱의 적절한 위치에서 서비스를 시작합니다.

FlutterBackgroundService().sendData({'action': 'start'});

서비스 옵션

flutter_background_service 패키지는 다양한 옵션을 제공합니다. 주요 옵션 몇 가지를 소개하겠습니다.

1. Notification: 백그라운드 서비스가 실행 중임을 사용자에게 알리는 알림을 설정할 수 있습니다.

service.setNotificationInfo(
  title: 'Service Running',
  content: 'The background service is active',
);

 

2. On Data Received: 서비스가 외부 데이터나 이벤트를 받을 때 실행할 콜백 함수를 설정할 수 있습니다.

service.onDataReceived.listen((event) {
  // Handle the received data
});

 

3. Periodic Execution: 주기적인 작업을 설정할 수 있습니다.

Timer.periodic(Duration(minutes: 15), (timer) {
  // Your periodic task
});

문제 해결 및 팁

  1. 서비스가 시작되지 않는 경우: 앱이 백그라운드에서 서비스를 시작하지 못하는 경우, AndroidManifest.xml 파일의 설정을 다시 확인하세요.
  2. 서비스 중지 문제: 서비스가 중지되는 문제는 안드로이드 기기의 배터리 절약 모드와 관련이 있을 수 있습니다. 이를 해결하기 위해서는 배터리 최적화 설정을 조정해 보세요.

결론

flutter_background_service 패키지는 Flutter 앱에서 백그라운드 작업을 처리하는 데 매우 유용한 도구입니다.

이 블로그 포스트에서는 패키지 설치부터 서비스 구현 및 옵션 설정까지 자세히 설명하였습니다.

이 가이드를 따라하면 백그라운드에서 안정적으로 작업을 수행하는 앱을 개발할 수 있을 것입니다.

 

Starting Google Play App Distribution! "Tester Share" for Recruiting 20 Testers for a Closed Test.

 

Tester Share [테스터쉐어] - Google Play 앱

Tester Share로 Google Play 앱 등록을 단순화하세요.

play.google.com

 

 

반응형