백그라운드 작업으로 시스템 이벤트에 응답하는 방법(HTML)
[ 이 문서는 Windows 런타임 앱을 작성하는 Windows에서 8.x 및 Windows Phone 8.x 개발자를 대상으로 합니다. Windows 10용으로 개발하는 경우에는 최신 설명서를 참조하세요.]
시스템 이벤트 트리거에 응답하는 백그라운드 작업을 만드는 방법을 알아봅니다. Windows 스토어 앱은 앱이 포그라운드에 없는 경우에도 경량 사용자 지정 코드를 SystemTrigger 이벤트에 연결하여 사용자 환경을 유지합니다. 이 사용자 지정 코드는 백그라운드 작업으로 실행됩니다.
알아야 할 사항
기술
사전 요구 사항
- 이 항목에서는 앱에 대해 작성된 백그라운드 작업 클래스가 있고, 인터넷을 사용할 수 있게 되거나 사용자가 로그인하는 등 시스템에서 트리거된 이벤트에 응답하여 이 작업을 실행해야 한다고 가정합니다. 앱이 SystemTrigger 및 MaintenanceTrigger 클래스를 사용하여 등록된 백그라운드 작업을 실행하기 위해 잠금 화면에 있을 필요는 없습니다. 이 항목에서는 SystemTrigger 클래스에 중점을 둡니다. 백그라운드 작업 클래스를 작성하는 방법에 대해서는 빠른 시작: 백그라운드 작업 만들기 및 등록을 참조하세요.
지침
단계 1: SystemTrigger 개체 만들기
앱 코드에서 새 SystemTrigger 개체를 만듭니다. 첫 번째 매개 변수인 triggerType은 이 백그라운드 작업을 활성화할 시스템 이벤트 트리거 형식을 지정합니다. 이벤트 형식 목록은 SystemTriggerType을 참조하세요.
두 번째 매개 변수인 OneShot은 다음에 시스템 이벤트가 발생되어 백그라운드 작업을 트리거할 때 백그라운드 작업을 한 번 실행할지, 아니면 작업을 등록 해제할 때까지 시스템 이벤트가 발생될 때마다 실행할지를 지정합니다.
다음 코드는 인터넷을 사용할 수 있게 될 때마다 백그라운드 작업을 실행하도록 지정합니다.
var internetTrigger = new Windows.ApplicationModel.Background.SystemTrigger(InternetAvailable, false);
단계 2: (옵션) 조건 추가
필요한 경우 작업이 실행되는 시간을 제어하는 백그라운드 작업 조건을 추가합니다. 그러면 조건이 충족되는 경우에만 백그라운드 작업이 실행됩니다. 자세한 내용은 백그라운드 작업 실행 조건을 설정하는 방법을 참조하세요.
이 예제에서는 사용자가 장치를 사용하고 있거나 사용자를 사용할 수 있게 될 때에만 백그라운드 작업이 실행되도록 조건을 UserPresent로 설정합니다. 가능한 백그라운드 작업 조건 목록은 SystemConditionType을 참조하세요.
다음 코드는 백그라운드 작업에 조건을 추가합니다.
var exampleCondition = new Windows.ApplicationModel.Background.SystemCondition(Windows.ApplicationModel.Background.SystemCondition.UserPresent);
단계 3: 백그라운드 작업 등록
백그라운드 작업 등록 함수를 호출하여 백그라운드 작업을 등록합니다. 백그라운드 작업 등록에 대한 자세한 내용은 백그라운드 작업을 등록하는 방법을 참조하세요.
다음 코드는 백그라운드 작업을 등록합니다.
var entryPoint = “js\\ExampleBackgroundTask.js”;
var taskName = “Internet-based background task”;
var task = RegisterBackgroundTask(entryPoint, taskName, internetTrigger, exampleCondition);
참고
Windows Phone 스토어 앱의 경우 백그라운드 작업을 등록하기 전에 RequestAccessAsync을(를) 호출해야 합니다. Windows에서는 앱이 잠금 화면에 있어야 하는 백그라운드 작업 집합을 실행하려는 경우에만 이 호출이 필요하지만 Phone에서는 백그라운드 작업을 등록하기 전에 이 메서드를 한 번 호출해야 합니다.
Windows Phone 앱을 계속 실행되는 올바로 해제한 후에는 업데이트가 업데이트 중인 후 앱이 시작될 때 RemoveAccess를 호출한 후 RequestAccessAsync를 호출합니다. 자세한 내용은 백그라운드 작업에 대한 지침(HTML)을 참조하세요.
참고
Windows 8.1부터 백그라운드 작업 등록 매개 변수는 등록 시 유효성이 검사됩니다. 등록 매개 변수가 하나라도 유효하지 않으면 오류가 반환됩니다. 백그라운드 작업 등록이 실패할 경우 앱에서 시나리오를 처리할 수 있어야 합니다. 예를 들어 조건문을 사용하여 등록 오류를 확인한 다음 다른 매개 변수 값을 사용하여 실패한 등록을 다시 시도해야 합니다.
설명
적용 중인 백그라운드 작업 등록을 보려면 백그라운드 작업 샘플(영문)을 다운로드합니다.
잠금 화면에 배치하지 않아도 SystemTrigger 및 MaintenanceTrigger 이벤트에 대한 응답으로 백그라운드 작업을 실행할 수 있지만 응용 프로그램 매니페스트에서 백그라운드 작업을 선언해야 합니다. Phone에서는 백그라운드 작업 형식을 등록하기 전에 RequestAccessAsync도 호출해야 합니다.
잠금 화면 지원 앱은 TimeTrigger, PushNotificationTrigger 및 NetworkOperatorNotificationTrigger 이벤트에 응답하는 백그라운드 작업을 등록하여, 앱이 포그라운드에 있지 않은 경우에도 사용자와 실시간으로 통신할 수 있습니다. 자세한 내용은 백그라운드 작업을 사용하여 앱 지원을 참조하세요.