다음을 통해 공유


ServicingComplete 트리거를 사용하는 방법(HTML)

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

ServicingComplete SystemTrigger를 사용하여 앱 업데이트 후 백그라운드 작업 등록을 제어하는 방법을 알아봅니다.

알아야 할 사항

기술

사전 요구 사항

지침

단계 1: ServicingComplete 백그라운드 작업 만들기

백그라운드 작업 등록은 앱 업데이트 간에 유지됩니다. 앱이 업데이트되어도 등록은 계속 유효하며 트리거됩니다. 앱은 업데이트될 때 알림을 받도록 ServicingComplete 트리거를 사용하여 백그라운드 작업을 등록하고 더 이상 유효하지 않은 백그라운드 작업을 등록 취소할 수 있습니다.

  1. 백그라운드 작업에 대한 새 JavaScript 파일을 만듭니다.

    다음 샘플 코드는 백그라운드 작업의 기본 시작 지점을 보여 줍니다.

    //
    // ServicingCompleteTask.js
    //
    (function () {
        "use strict";
    
    
        //
        // This function does the work of the ServicingComplete background task.
        //
        function doWork() {
    
    
            //
            // A JavaScript background task must call close when it is done.
            //
            close();
        }
    
    
        doWork();
    
    })();
    
  2. 등록 취소해야 하는 백그라운드 작업에 대한 등록 개체를 찾습니다. Unregister를 호출하여 작업을 등록 취소합니다. cancelTask 매개 변수를 true로 설정하여 인스턴스가 활성화된 경우 백그라운드 작업이 강제로 실행 중지되도록 할 수 있습니다.

    //
    // ServicingCompleteTask.js
    //
    (function () {
        "use strict";
    
    
        //
        // This function does the work of the ServicingComplete background task.
        //
        function doWork() {
    
            // 
            // Unregister tasks that no longer exist.
            // 
    
            var unregisterTask = "BadTaskName";
    
            var unregTask = FindTask(unregisterTask);
            if (unregTask != null) {
                unregTask.Unregister(true);
            }
    
    
            //
            // A JavaScript background task must call close when it is done.
            //
            close();
        }
    
    
        // 
        // Check for a registration of the named background task. If one exists,
        // return it.
        // 
        function FindTask(taskName) {
    
            var taskRegistered = false;
    
            var background = Windows.ApplicationModel.Background;
            var iter = background.BackgroundTaskRegistration.allTasks.first();
            var hascur = iter.hasCurrent;
    
            while (hascur) {
                var cur = iter.current.value;
    
                if (cur.name === taskName) {
                    return cur;
                }
    
                hascur = iter.moveNext();
            }
        }
    
    
        doWork();
    
    })();
    
  3. 필요에 따라 대체 작업을 등록합니다. 백그라운드 작업을 등록하는 방법에 지정된 함수와 같은 백그라운드 작업 등록 함수를 사용하여 간단하게 작업을 수행합니다.

    //
    // ServicingCompleteTask.js
    //
    (function () {
        "use strict";
    
    
        //
        // This function does the work of the ServicingComplete background task.
        //
        function doWork() {
    
            // 
            // Unregister tasks that no longer exist.
            // 
    
            var unregisterTask = "BadTaskName";
    
            var unregTask = FindTask(unregisterTask);
            if (unregTask != null) {
                unregTask.Unregister(true);
            }
    
    
            // 
            // Register new/replacement tasks.
            // 
    
            var newTaskName = "New Background Task";
            var newTaskEntryPoint = "js\\NewBackgroundTask.js";
    
            var background = Windows.ApplicationModel.Background;
            var internetTrigger = new background.SystemTrigger(
                             background.SystemTriggerType.internetAvailable, false);
    
            var newTask = RegisterBackgroundTask(newTaskEntryPoint,
                                                 newTaskName, 
                                                 internetTrigger, 
                                                 null);
    
    
            //
            // A JavaScript background task must call close when it is done.
            //
            close();
        }
    
    
        // 
        // Check for a registration of the named background task. If one exists,
        // return it.
        // 
        function FindTask(taskName) {
    
            var taskRegistered = false;
    
            var background = Windows.ApplicationModel.Background;
            var iter = background.BackgroundTaskRegistration.allTasks.first();
            var hascur = iter.hasCurrent;
    
            while (hascur) {
                var cur = iter.current.value;
    
                if (cur.name === taskName) {
                    return cur;
                }
    
                hascur = iter.moveNext();
            }
        }
    
    
        doWork();
    
    })();
    

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

ServicingComplete 백그라운드 작업은 앱이 업데이트될 때 트리거될 수 있도록 다른 백그라운드 작업과 함께 등록해야 합니다. ServicingComplete 백그라운드 작업의 진입점은 앱 업데이트 시 동일하게 유지되어야 합니다.

  1. SystemTrigger 개체를 만듭니다.

    • 첫 번째 triggerType 매개 변수는 servicingComplete로 설정해야 합니다.

    • 두 번째 OneShot 매개 변수는 false로 설정해야 합니다.

    다음은 ServicingComplete 트리거를 만드는 예제 코드입니다.

    
    var background = Windows.ApplicationModel.Background;
    
    var servicingCompleteTrigger = new background.SystemTrigger(
                            background.SystemTriggerType.servicingComplete, false);
    

    참고  ServicingComplete 백그라운드 작업 트리거에는 조건을 추가하지 않는 것이 좋습니다.

     

  2. 백그라운드 작업 등록 함수를 호출하여 작업을 등록합니다. 백그라운드 작업 등록에 대한 자세한 내용은 백그라운드 작업을 등록하는 방법을 참조하세요.

    다음은 ServicingComplete 작업을 등록하는 코드입니다.

    var entryPoint = "js\\ServicingCompleteTask.js";
    var taskName = "ServicingComplete background task";
    
    var task = RegisterBackgroundTask(entryPoint,
                                      taskName, 
                                      servicingCompleteTrigger, 
                                      null);
    

    참고  Windows Phone 스토어 앱의 경우 백그라운드 작업을 등록하기 전에 RequestAccessAsync을 한 번 호출해야 합니다.

단계 3: 패키지 매니페스트에서 백그라운드 작업 선언

ServicingComplete 백그라운드 작업은 다른 모든 백그라운드 작업과 마찬가지로 패키지 매니페스트에 나열되어야 합니다. 자세한 내용은 응용 프로그램 매니페스트에서 백그라운드 작업을 선언하는 방법을 참조하세요. 예를 들면 다음과 같습니다.

앱 매니페스트에서 선언된 ServicingCompleteTask

설명

백그라운드 작업으로 앱 업데이트를 디버깅하는 방법과 관련한 중요 정보는 백그라운드 작업을 디버그하는 방법(Windows 스토어 앱)을 참조하세요.

관련 항목

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

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

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

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

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

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

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