백그라운드 작업에 대한 지침 및 검사 목록(HTML)

[ 이 문서는 Windows 런타임 앱을 작성하는 Windows에서 8.x 및 Windows Phone 8.x 개발자를 대상으로 합니다. Windows 10용으로 개발하는 경우에는 최신 설명서를 참조하세요.]

앱을 지원하고 앱이 백그라운드 작업에 대한 실행 요구 사항을 충족하도록 효율적인 백그라운드 작업을 만드세요.

백그라운드 작업 지침

백그라운드 작업을 개발할 때와 앱을 게시하기 전에 다음 지침을 고려하세요.

백그라운드 작업 닫기: 백그라운드 작업은 완료되면 close() 메서드를 호출해야 합니다. 백그라운드 작업이 자체 종료하지 않으면 백그라운드 작업이 완료되거나 취소된 경우에도 백그라운드 작업을 실행하는 프로세스가 계속 메모리와 배터리 수명을 소모할 수 있습니다.

CPU 및 네트워크 할당량: 백그라운드 작업에 적용된 CPU 할당량 또는 네트워크 데이터 사용 할당량을 초과하지 않습니다. 배터리 수명을 절약하고 포그라운드 앱에 대한 효율적인 사용자 환경을 제공하도록 백그라운드 작업은 간결해야 합니다. 백그라운드 작업에 적용되는 리소스 제약 조건은 백그라운드 작업을 사용하여 앱 지원을 참조하세요.

백그라운드 작업 관리: 앱에서는 등록된 백그라운드 작업 목록을 가져오고, 진행률 및 완료 처리기를 등록하고, 해당 이벤트를 적절하게 처리해야 합니다. 백그라운드 작업은 진행률, 취소 및 완료를 보고해야 합니다. 자세한 내용은 보류 중인 백그라운드 작업 목록을 가져오는 방법, 취소된 백그라운드 작업을 처리하는 방법백그라운드 작업 진행 및 완료를 모니터링하는 방법을 참조하세요.

앱 매니페스트 업데이트: 응용 프로그램 매니페스트에서 각 백그라운드 작업을 사용되는 트리거 형식과 함께 선언합니다. 그렇지 않으면 앱에서 런타임에 백그라운드 작업을 등록할 수 없습니다. 자세한 내용은 응용 프로그램 매니페스트에서 백그라운드 작업을 선언하는 방법을 참조하세요.

앱 업데이트 준비: 앱을 업데이트할 경우 포그라운드 실행 컨텍스트 외부에서 필요한 앱 업데이트를 실행할 수 있도록 ServicingComplete 백그라운드 작업(SystemTriggerType 참조)을 만들고 등록합니다.

Windows의 잠금 화면 지원 앱에 대한 백그라운드 작업: 잠금 화면은 공유 리소스입니다. 잠금 화면에는 앱을 한 번에 7개만 배치할 수 있으며, 한 앱만 큰 타일을 표시할 수 있습니다. 앱은 RequestAccessAsync 메서드를 사용하여 잠금 화면 액세스를 요청하고 잠금 화면에 배치하지 않은 상태에서도 앱이 작동하도록 하여 뛰어난 사용자 환경을 제공할 수 있습니다. 잠금 화면에 배치되지 않은 앱에서도 타일 및 배지를 업데이트하고 알림을 보내고 시스템 이벤트 트리거를 등록할 수 있습니다. 앱이 포그라운드에 있는 경우에는 사용자가 앱을 잠금 화면에 배치하지 않았더라도 사용자 환경은 중단되지 않아야 합니다.

앱을 잠금 화면에 배치하는 것이 적합한지 여부를 알아보려면 잠금 화면 개요를 참조하세요.

Windows Phone 스토어 앱을 위한 백그라운드 작업 실행 요청:

Windows Phone 스토어 앱은 잠금 화면에 고정되지 않아도 지원되는 모든 작업 형식을 실행할 수 있습니다. 그러나 앱이 모든 형식의 백그라운드 작업을 등록하기 전에 RequestAccessAsync을(를) 호출해야 합니다. 시스템 전체에서 백그라운드 작업이 있는 최대 앱 수를 초과하거나 사용자가 장치 설정에서 앱에 대한 백그라운드 작업 권한을 명시적으로 거부한 경우에는 이 메서드에서 BackgroundAccessStatus.Denied을(를) 반환합니다.

Windows Phone 스토어 앱에서는 앱을 업데이트할 경우 RemoveAccess을(를) 호출한 다음 업데이트 후 앱을 시작할 때 RequestAccessAsync을(를) 호출해야 합니다. 앱이 업데이트된 시간을 확인하려면 로컬 설정에 저장된 값을 사용해서 앱의 버전 번호를 추적합니다. 앱이 실행되면 앱 버전을 확인하고 로컬 설정에 있는 버전보다 새 버전인지 확인한 후 RemoveAccessRequestAccessAsync을(를) 호출합니다. 이렇게 하려면 앱의 다음과 비슷한 코드를 추가하고 해당 앱의 이것을 시작 이벤트 처리기에서 호출합니다.

function checkAppVersion() {
    var localSettings = Windows.Storage.ApplicationData.current.localSettings;
    var pkgVersion = Windows.ApplicationModel.Package.current.id.version;
    var backgroundExecMgr = Windows.ApplicationModel.Background.BackgroundExecutionManager;

    var appVersion = pkgVersion.build + "." +
                        pkgVersion.major + "." +
                        pkgVersion.minor + "." +
                        pkgVersion.revision;

    if (localSettings.values["appVersion"] != appVersion)
    {
        // Our app has been updated
        localSettings.values["appVersion"] = appVersion;

        // Call removeAccess
        backgroundExecMgr.removeAccess();
    }
        
    backgroundExecMgr.requestAccessAsync();
}

백그라운드 작업 검사 목록

다음 검사 목록은 모든 백그라운드 작업에 적용됩니다.

  • 백그라운드 작업을 올바른 트리거에 연결합니다.

  • 백그라운드 작업이 성공적으로 실행되도록 조건을 추가합니다.

  • 백그라운드 작업 진행률, 완료 및 취소를 처리합니다.

  • 백그라운드 작업에서 알림, 타일 및 배지 업데이트 이외의 UI를 표시하지 않습니다.

  • 백그라운드 작업이 수행 중인 동안 close()를 호출합니다.

  • 영구적 저장소를 사용하여 백그라운드 작업과 앱 간에 데이터를 공유합니다.

  • 응용 프로그램 매니페스트에서 각 백그라운드 작업을 사용되는 트리거 형식과 함께 선언합니다. 진입점과 트리거 형식이 올바른지 확인합니다.

  • 지속 시간이 짧은 백그라운드 작업을 씁니다. 백그라운드 작업을 사용하여 앱 지원에 표시된 CPU 또는 네트워크 할당량을 초과하지 않습니다.

  • 백그라운드 작업에서 사용자 조작을 요구하지 않습니다.

  • 백그라운드 작업 등록 오류를 확인합니다. 해당되는 경우 다른 매개 변수 값을 사용하여 백그라운드 작업을 다시 등록합니다.

Windows: 잠금 화면 지원 앱에 대한 백그라운드 작업 검사 목록

잠금 화면에 배치할 수 있는 앱에 대한 백그라운드 작업을 개발하는 경우 다음 지침을 따릅니다. 잠금 화면 타일에 대한 지침 및 검사 목록의 지침을 따르세요.

  • 앱을 잠금 화면 지원으로 개발하기 전에 앱을 잠금 화면에 배치해야 하는지를 확인합니다. 자세한 내용은 잠금 화면 개요를 참조하세요.

  • 잠금 화면에 배치하지 않아도 앱이 작동하는지 확인합니다.

  • RequestAccessAsync 메서드를 사용하여 잠금 화면 액세스를 요청합니다.

  • TimeTrigger를 사용하여 등록된 백그라운드 작업을 포함하며 앱 매니페스트에서 백그라운드 작업을 선언합니다. 진입점과 트리거 형식이 올바른지 확인합니다. 이는 인증하는 데 필요하며 사용자가 앱을 잠금 화면에 배치할 수 있도록 해줍니다.

  • 잠금 화면 지원 앱에 대해서도 지속 시간이 짧은 백그라운드 작업을 씁니다. 백그라운드 작업을 사용하여 앱 지원에 표시된 CPU 또는 네트워크 할당량을 초과하지 않습니다.

  • Windows Phone 스토어 앱에서는 장치의 메모리가 부족해지면 백그라운드 작업이 경고 없이, OnCanceled 이벤트가 발생하지 않고 종료될 수 있습니다. 이는 포그라운드에서 앱의 사용자 환경을 확인하는 데 도움이 됩니다. 백그라운드 작업은 이 시나리오를 처리하도록 설계되어야 합니다.

관련 항목

기타 관련 백그라운드 작업 항목

빠른 시작: 백그라운드 작업 만들기 및 등록

백그라운드 작업을 등록하는 방법

백그라운드 작업을 디버그하는 방법

응용 프로그램 매니페스트에서 백그라운드 작업을 선언하는 방법

Windows 스토어 앱에서 일시 중단, 다시 시작 및 백그라운드 이벤트를 트리거하는 방법(디버깅 시)

기타 관련 잠금 화면 지침

잠금 화면 개요

잠금 화면에 타일 표시

잠금 화면 타일에 대한 지침 및 검사 목록