자마린(Xamarin)

(자마린강좌/자마린교육)안드로이드 8.0이상에서의 Service 실행 제한

FSP 0 281 01.30 08:59

(자마린강좌/자마린교육)안드로이드 8.0이상에서의 Service 실행 제한

 

n 안드로이드 8.0 (API 레벨 26)부터 애플리케이션은 더 이상 백그라운드에서 자유롭게 실행할 수 없다. Foreground에서 앱은 제한없이 서비스를 시작하고 실행할 수 있지만 Background로 이동하면 Android 시스템은 서비스를 시작하고 사용할 수 있는 일정 시간을 앱에 부여하고 그 시간이 지나면 앱은 더 이상 서비스를 시작할 수 없고 시작된 모든 서비스는 종료된다.

n 이 시점에 앱이 어떤 작업을 수행 할 수는 없다. Android는 다음 조건 중 하나가 충족되면 응용 프로그램을 Foreground로 간주한다.

ü 가시적 인 활동 (시작됨 또는 일시 중지됨)이 있는 경우.

ü 앱에서 Foreground Service 시작.

ü 다른 앱이 포 그라운드에 있으며 배경에 있는 앱의 구성 요소를 사용하고 있는 경우. 예를 들어 포 그라운드에있는 응용 프로그램 A가 응용 프로그램 B에서 제공하는 서비스에 바인딩 되어있는 경우로 응용 프로그램 B도 Foreground에서 고려되며 Background에서 사용하기 위해 Android에 의해 종료되지 않는다.

n 앱이 백그라운드에 있어도 Android가 앱을 깨우고 몇 분 동안 이러한 제한 사항을 완화하여 앱에서 몇 가지 작업을 수행 할 수있는 경우가 있다. 우선 순위가 높은 Firebase 클라우드 메시지가 앱에 수신, 브로드 캐스트 메시지를 수신되는 경우 Notification에 대한 응답으로 PendingIntent를 실행한다.

n 기존 Xamarin.Android 응용 프로그램은 Android 8.0에서 발생할 수있는 문제를 피하기 위해 백그라운드 작업 수행 방법을 변경해야 할 수도 있다. 다음은 Android 서비스에 대한 실용적인 대안이다.

ü Android Job Scheduler 또는 Firebase Job Dispatcher를 사용하여 백그라운드에서 작업 실행 예약 - 이 두 라이브러리는 백그라운드 작업을 개별 작업 단위로 분리하는 애플리케이션을위한 프레임 워크를 제공한다.

ü Foreground에서 서비스 시작 - Foreground 서비스는 앱이 Background에서 일부 작업을 수행해야 하고 사용자가 주기적으로 해당 작업과 상호 작용해야하는 경우에 유용하다. Foreground 서비스는 앱이 백그라운드 작업을 실행하고 있으며 작업을 모니터링하거나 상호 작용할 수있는 방법을 제공한다는 것을 사용자가 알 수 있도록 지속적인 알림을 표시 한다. 예를 들어 사용자에게 팟 캐스트를 재생중인 팟 캐스팅 앱 또는 나중에 즐길 수 있도록 팟 캐스트 에피소드를 다운로드하는 경우가 있다.

ü 우선 순위가 높은 Firebase Cloud Message (FCM) 사용 - Android가 앱에 우선 순위가 높은 FCM을 받으면 해당 앱이 짧은 시간 동안 백그라운드에서 서비스를 실행할 수 있다.

ü 응용 프로그램이 Foreground로 들어올 때 작업 지연 - 이전 솔루션이 실행 가능하지 않은 경우 응용 프로그램이 포 그라운드로 오면 일시 중지하고 작업을 다시 시작할 수 있는 고유 한 방법을 개발해야 한다.

#자마린강좌#자마린강의#자마린교육#자마린출강#자마린#Xamarin#자마린안드로이드#Xamarin.Android, #자마린폼즈

, , , , , , , ,

Comments

KONA ELEVEN
-->