유지 관리 트리거를 사용하는 방법(HTML)
[ 이 문서는 Windows 런타임 앱을 작성하는 Windows에서 8.x 및 Windows Phone 8.x 개발자를 대상으로 합니다. Windows 10용으로 개발하는 경우에는 최신 설명서를 참조하세요.]
장치가 연결되어 있는 동안 MaintenanceTrigger 클래스를 사용하여 경량 코드를 실행하는 방법을 알아봅니다.
알아야 할 사항
기술
사전 요구 사항
- 이 예에서는 장치가 연결되어 있는 동안 백그라운드에서 실행하여 앱의 성능을 향상시킬 수 있는 경량 코드가 있다고 가정합니다. 이 항목에서는 MaintenanceTrigger 클래스에 중점을 두고 설명합니다. MaintenanceTrigger 백그라운드 작업을 등록하기 위해 앱을 잠금 화면에 배치할 필요가 없다는 점에서 이 클래스는 SystemTrigger와 비슷합니다. 백그라운드 작업 클래스를 작성하는 방법에 대해서는 빠른 시작: 백그라운드 작업 만들기 및 등록을 참조하세요.
지침
단계 1: 유지 관리 트리거 개체 만들기
새 MaintenanceTrigger 개체를 만듭니다. 두 번째 매개 변수인 OneShot은 유지 관리 작업이 한 번 실행되는지, 아니면 정기적으로 계속 실행되는지를 지정합니다. OneShot이 true로 설정된 경우 첫 번째 매개 변수(FreshnessTime)는 백그라운드 작업을 예약하기 전에 대기할 시간(분)을 지정합니다. OneShot이 false로 설정된 경우 FreshnessTime은 백그라운드 작업의 실행 빈도를 지정합니다.
참고 FreshnessTime이 15분 이하로 설정된 경우 백그라운드 작업을 등록하려면 예외가 발생합니다.
이 예제 코드에서는 한 시간에 한 번 실행되는 트리거를 만듭니다.
var waitIntervalMinutes = 60;
var taskTrigger = new Windows.ApplicationModel.Background.MaintenanceTrigger(waitIntervalMinutes, false);
단계 2: (옵션) 조건 추가
필요한 경우 작업이 실행되는 시간을 제어하는 백그라운드 작업 조건을 추가합니다. 그러면 조건이 충족되는 경우에만 백그라운드 작업이 실행됩니다. 자세한 내용은 백그라운드 작업 실행 조건을 설정하는 방법을 참조하세요.
이 예제에서는 사용자가 활성 상태이거나 사용자가 활성 상태가 될 때 유지 관리 작업이 실행되도록 조건을 UserPresent로 설정합니다. 가능한 백그라운드 작업 조건 목록은 SystemConditionType을 참조하세요.
다음 코드는 유지 관리 작업 작성기에 조건을 추가합니다.
var exampleCondition = new Windows.ApplicationModel.Background.SystemCondition(Windows.ApplicationModel.Background.SystemConditionType.UserAway);
단계 3: 백그라운드 작업 등록
백그라운드 작업 등록 함수를 호출하여 백그라운드 작업을 등록합니다. 백그라운드 작업 등록에 대한 자세한 내용은 백그라운드 작업을 등록하는 방법을 참조하세요.
다음 코드는 백그라운드 작업을 등록합니다.
var entryPoint = “js\\ExampleBackgroundTask.js”;
var taskName = “Maintenance background task example”;
var task = RegisterBackgroundTask(entryPoint, taskName, taskTrigger, exampleCondition);
참고
Windows Phone 스토어 앱의 경우 백그라운드 작업을 등록하기 전에 RequestAccessAsync을(를) 호출해야 합니다. Windows에서는 앱이 잠금 화면에 있어야 하는 백그라운드 작업 집합을 실행하려는 경우에만 이 호출이 필요하지만 Phone에서는 백그라운드 작업을 등록하기 전에 이 메서드를 한 번 호출해야 합니다.
Windows Phone 앱을 계속 실행되는 올바로 해제한 후에는 업데이트가 업데이트 중인 후 앱이 시작될 때 RemoveAccess를 호출한 후 RequestAccessAsync를 호출합니다. 자세한 내용은 백그라운드 작업에 대한 지침(HTML)을 참조하세요.
참고
Windows 8.1부터 백그라운드 작업 등록 매개 변수는 등록 시 유효성이 검사됩니다. 등록 매개 변수가 하나라도 유효하지 않으면 오류가 반환됩니다. 백그라운드 작업 등록이 실패할 경우 앱에서 시나리오를 처리할 수 있어야 합니다. 예를 들어 조건문을 사용하여 등록 오류를 확인한 다음 다른 매개 변수 값을 사용하여 실패한 등록을 다시 시도해야 합니다.
설명
장치가 연결되어 있지 않으면 유지 관리 트리거 이벤트가 발생하지 않습니다.
참고 장치가 연결되지 않은 경우 MaintenanceTrigger에 의해 시작된 현재 실행 중인 모든 백그라운드 작업이 취소됩니다(cancelReason = Abort). 백그라운드 작업은 백그라운드 작업 취소 이벤트를 수신한 후 5초 이내에 취소되지 않을 경우 종료됩니다. 자세한 내용은 취소된 백그라운드 작업을 처리하는 방법을 참조하세요.