데이터 동기화 포그라운드 서비스의 대안

dataSync 포그라운드 서비스 대신 사용할 수 있는 더 나은 대안이 있는 경우가 많습니다. 이 문서는 사용 사례에 가장 적합한 대안을 찾는 데 도움이 됩니다.

마이그레이션 사용 사례

이 섹션에서는 앱이 현재 dataSync 포그라운드 서비스를 사용할 수 있는 몇 가지 일반적인 상황과 권장되는 대안을 설명합니다.

네트워크를 통해 데이터 전송
사용자가 전송을 시작했고 그리고 사용자에게 전송 진행 상황을 알려야 하는 경우 사용자 시작 데이터 전송 API를 사용합니다. 그 외의 경우에는 WorkManager를 사용하세요.
로컬 기기 간 데이터 전송
특정 API를 사용할 수 있는 경우 (예: 호환 기기 관리자) 사용합니다. 그렇지 않으면 connectedDevice 포그라운드 서비스를 사용합니다.
미디어 트랜스코딩
새로운 mediaProcessing 포그라운드 서비스 유형을 사용합니다.
짧고 중요한 작업 완료
shortService 포그라운드 서비스를 사용합니다.
파일 처리 (예: SD 카드와의 데이터 전송, 콘텐츠 크기 조절, 데이터 암호화 또는 복호화)
작업을 3분 이내에 완료할 수 있는 경우 shortService 포그라운드 서비스를 사용하세요. 그 외의 경우에는 WorkManager를 사용합니다.

사용자 시작 데이터 전송 API 사용

앱에서 원격 서버로 데이터를 전송해야 하는 경우 새로운 사용자 시작 데이터 전송 API를 사용하는 것이 좋습니다. 이러한 API는 다음에 해당하는 경우에 적합합니다.

  • 사용자가 데이터 전송을 시작함
  • 사용자에게 데이터 전송 진행률을 알려야 합니다.
  • 시스템에서 전송을 중단하는 경우 사용자 환경에 악영향을 줌

이러한 조건 중 하나라도 충족되지 않으면 대신 WorkManager를 사용해야 합니다.

예를 들어 미디어 앱은 사용자가 로컬에서 재생하기 위해 앨범을 다운로드하도록 허용할 수 있습니다. 사용자가 재생목록을 다운로드하여 바로 재생하려는 경우 개발자는 사용자 시작 데이터 전송 API를 사용하는 것이 좋습니다. 반면에 사용자가 다운로드한 재생목록이 사용자 시작 없이 백그라운드에서 주기적으로 업데이트되도록 하려면 WorkManager를 사용하는 것이 좋습니다.

자세한 내용은 포그라운드 서비스를 사용자가 시작한 데이터 전송 작업으로 이전 문서를 참고하세요.

WorkManager 사용

대부분의 경우 WorkManager는 작업을 예약해야 할 때 가장 적합한 옵션입니다. 시스템에서 중단하거나 지연할 수 있는 방식으로 작업을 설계해야 합니다. 자세한 내용은 WorkManager 문서를 참고하세요.

다음은 포그라운드 서비스에서 WorkManager로 이전할 때 도움이 될 수 있는 몇 가지 참고사항입니다.

  • 작업을 최대한 빨리 실행해야 하는 경우 신속 처리 작업 요청을 예약할 수 있습니다. 이 옵션은 브로드캐스트, 정확한 알람 또는 우선순위가 높은 FCM 메시지에 응답하여 작업을 예약하는 경우에 특히 유용합니다.
  • 작업을 주기적으로 실행해야 하는 경우 주기적인 작업을 예약할 수 있습니다. 주기적인 작업 요청을 사용하면 작업 실행 빈도를 대략적으로 지정할 수 있지만 특정 시간을 보장하지는 않습니다. 이를 통해 시스템은 여러 앱의 작업 요청을 예약하여 기기 수요의 균형을 유지할 수 있습니다.
  • 작업 제약 조건을 정의하여 작업을 실행하기에 적합한 상황을 지정해야 합니다. 예를 들어 앱에서 긴급하지 않은 리소스를 다운로드해야 하는 경우 기기가 충전 중이고 무제한 네트워크에 연결되어 있는 동안 작업을 실행하도록 지정할 수 있습니다. 그러면 WorkManager는 시스템 부하를 분산하는 시간에 작업을 실행할 수 있습니다.
  • WorkManager는 필요한 경우 작업을 취소하고 다시 시도할 수 있습니다. 예를 들어 작업이 실행되는 동안 사용자가 기기를 끌 수 있습니다. 시스템은 기기를 다시 사용할 수 있게 되면 작업을 재시도할 수 있습니다. 워크플로를 설계하고 테스트하여 취소 및 재시도 주기가 제대로 작동하는지 확인해야 합니다.

보다 구체적인 포그라운드 서비스 유형 사용

백그라운드 작업을 실행하는 다른 방법으로 전환할 수 없는 경우에도 포그라운드 서비스를 사용해야 할 수 있습니다. 이 경우 dataSync 대신 사용할 적절한 서비스 유형을 찾아야 합니다. 코드에서 이미 포그라운드 서비스를 사용하고 있으므로 이 이전은 간단합니다. 적절한 포그라운드 서비스 유형을 선택하고 앱이 서비스의 요구사항을 충족하는지 확인하기만 하면 됩니다.

언제나 그렇듯 포그라운드 서비스 사용을 고려하고 있다면 사용 사례에 더 적합한 대체 API가 있는지 고려해야 합니다.

짧은 서비스 포그라운드 서비스 사용

앱에서 짧고 중요한 작업을 실행해야 하는 경우 shortService 포그라운드 서비스가 가장 좋은 옵션일 수 있습니다. 다음은 shortService 포그라운드 서비스가 적합한 몇 가지 상황입니다.

  • 사용자가 작업을 시작하고 (예: 서버에 데이터 동기화) 사용자가 즉시 앱을 백그라운드로 전송하더라도 작업이 완료되도록 하고 싶은 경우
  • 영구 저장소에 메모리 내 정보 저장
  • 정보 암호화 또는 복호화

자세한 내용은 shortService 문서를 참고하세요.

연결된 기기 포그라운드 서비스 사용

데이터를 다른 로컬 기기로 전송해야 하는 경우 connectedDevice 포그라운드 서비스를 사용하는 것이 좋습니다. 다음은 이 작업이 필요한 몇 가지 일반적인 상황입니다.

  • 헤드폰 또는 스마트시계와 같은 블루투스 액세서리와 통신
  • USB 연결, NFC 또는 로컬 인터넷 연결을 통해 로컬에 연결된 기기로 데이터 전송

그러나 이러한 상황에서는 포그라운드 서비스를 사용하는 대신 호환 기기 관리자를 사용하여 기기에 연결할 수 있습니다. 항상 그렇듯이 사용 사례에 특수 목적 API를 사용할 수 있다면 포그라운드 서비스를 사용하는 것보다 이 방법을 사용하는 것이 더 좋습니다.

새 미디어 처리 포그라운드 서비스 사용

미디어 데이터를 처리해야 하는 경우 새 mediaProcessing 포그라운드 서비스를 사용할 수 있습니다. 이 서비스 유형은 앱이 Android 15 이상을 타겟팅하는 경우에 사용할 수 있습니다. 예를 들어 이 서비스 유형은 앱이 재생을 위해 한 형식에서 다른 형식으로 미디어를 트랜스코딩해야 하는 경우에 적합합니다. 자세한 내용은 미디어 처리 포그라운드 서비스 문서를 참고하세요.

추가 리소스

이 포그라운드 서비스 변경사항에 관한 자세한 내용은 다음 추가 리소스를 참고하세요.