다음을 통해 공유


백그라운드 작업 실행 조건을 설정하는 방법(HTML)

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

적절한 경우에만 실행되도록 백그라운드 작업 실행 조건을 설정하는 방법을 알아봅니다. 백그라운드 작업은 성공적으로 수행하려면 작업을 트리거하는 이벤트 이외에 특정한 조건을 충족해야 합니다. 백그라운드 작업을 등록할 때 SystemConditionType에 지정된 조건을 하나 이상 지정할 수 있습니다. 트리거가 실행되면 조건을 확인합니다. 백그라운드 작업은 큐에 보관되지만 모든 필요한 조건이 충족될 때에만 실행됩니다.

백그라운드 작업에 조건을 설정하면 작업이 불필요하게 실행되지 않으므로 배터리 수명과 CPU 런타임이 절약됩니다. 예를 들어 백그라운드 작업이 타이머에 따라 실행되고 인터넷 연결이 필요한 경우 작업을 등록하기 전에 InternetAvailable 조건을 TaskBuilder에 추가합니다. 그러면 타이머가 경과되고 인터넷을 사용할 수 있을 때 작업을 실행하여 작업에서 시스템 리소스와 배터리를 불필요하게 사용하는 것을 방지할 수 있습니다.

알아야 할 사항

기술

사전 요구 사항

  • 이 항목에서는 앱에 백그라운드 작업이 이미 연결되어 있으며, BackgroundTaskBuilder 개체(taskBuilder)를 만드는 코드가 앱에 포함되어 있다고 가정합니다.

지침

단계 1: SystemCondition 개체 만들기

조건을 추가하기 전에 백그라운드 작업이 실행되기 위해 충족해야 하는 조건을 나타내는 SystemCondition 개체를 만듭니다. 생성자에서 SystemConditionType 열거형 값을 제공하여 충족해야 하는 조건을 지정합니다.

다음 코드는 조건부 요구 사항으로 인터넷 가용성을 지정하는 SystemCondition 개체를 만듭니다.

var internetCondition = new Windows.ApplicationModel.Background.SystemCondition(Windows.ApplicationModel.Background.SystemConditionType.InternetAvailable);

단계 2: 백그라운드 작업에 SystemCondition 개체 추가

조건을 추가하려면 BackgroundTaskBuilder 개체에 대해 AddCondition 메서드를 호출하고 SystemCondition 개체를 전달합니다.

다음 코드는 InternetAvailable 백그라운드 작업 조건을 TaskBuilder에 등록합니다.

taskBuilder.AddCondition(internetCondition);

단계 3: 백그라운드 작업 등록

이제 Register 메서드를 사용하여 백그라운드 작업을 등록할 수 있으며, 지정한 조건을 충족하는 경우에만 작업이 시작됩니다.

다음 코드는 작업을 등록하고 결과 BackgroundTaskRegistration 개체를 저장합니다.


var task = taskBuilder.Register();

참고  

Windows Phone 스토어 앱의 경우 백그라운드 작업을 등록하기 전에 RequestAccessAsync을(를) 호출해야 합니다. Windows에서는 앱이 잠금 화면에 있어야 하는 백그라운드 작업 집합을 실행하려는 경우에만 이 호출이 필요하지만 Phone에서는 백그라운드 작업을 등록하기 전에 이 메서드를 한 번 호출해야 합니다.

Windows Phone 앱을 계속 실행되는 올바로 해제한 후에는 업데이트가 업데이트 중인 후 앱이 시작될 때 RemoveAccess를 호출한 후 RequestAccessAsync를 호출합니다. 자세한 내용은 백그라운드 작업에 대한 지침(HTML)을 참조하세요.

참고  

Windows 8.1부터 백그라운드 작업 등록 매개 변수는 등록 시 유효성이 검사됩니다. 등록 매개 변수가 하나라도 유효하지 않으면 오류가 반환됩니다. 백그라운드 작업 등록이 실패할 경우 앱에서 시나리오를 처리할 수 있어야 합니다. 예를 들어 조건문을 사용하여 등록 오류를 확인한 다음 다른 매개 변수 값을 사용하여 실패한 등록을 다시 시도해야 합니다.

 

단계 4: 백그라운드 작업에 여러 조건 배치

여러 조건을 추가하려면 앱에서 AddCondition 메서드를 여러 번 호출합니다. 이러한 호출은 작업 등록이 적용되기 전에 수행되어야 합니다.

참고  백그라운드 작업에 충돌하는 조건을 추가하지 않도록 주의하세요.

 

다음 코드 조각은 백그라운드 작업을 만들고 등록하는 컨텍스트 내의 여러 조건을 보여 줍니다.

var hourlyTrigger = new Windows.ApplicationModel.Background.TimeTrigger(60, false);

var recurringTaskBuilder = new Windows.ApplicationModel.Background.BackgroundTaskBuilder();

recurringTaskBuilder.Name = "Hourly background task for YourApp";
recurringTaskBuilder.TaskEntryPoint = "js\\ExampleBackgroundTask.js";
recurringTaskBuilder.SetTrigger(hourlytrigger);

//
// Begin adding conditions.
//
var userCondition = new Windows.ApplicationModel.Background.SystemCondition(Windows.ApplicationModel.Background.SystemConditionType.UserPresent);
var internetCondition = new Windows.ApplicationModel.Background.SystemCondition(Windows.ApplicationModel.Background.SystemConditionType.InternetAvailable);

taskBuilder.AddCondition(userCondition);
taskBuilder.AddCondition(internetCondition);

//
// Done adding conditions. Now we register the background task.
//
var task = recurringTaskBuilder.Register();

설명

참고  백그라운드 작업이 필요한 경우에만 실행되고 작업이 실패하는 경우에는 실행되지 않도록 백그라운드 작업에 적합한 조건을 선택합니다. 다른 백그라운드 작업 조건에 대한 자세한 내용은 SystemConditionType을 참조하세요.

관련 항목

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

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

백그라운드 작업으로 시스템 이벤트에 응답하는 방법

유지 관리 트리거를 사용하는 방법

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

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

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