보류 중인 백그라운드 작업 목록을 가져오는 방법(HTML)
[ 이 문서는 Windows 런타임 앱을 작성하는 Windows에서 8.x 및 Windows Phone 8.x 개발자를 대상으로 합니다. Windows 10용으로 개발하는 경우에는 최신 설명서를 참조하세요.]
앱에 의해 현재 등록된 백그라운드 작업 목록을 가져오는 방법을 알아봅니다. 이 목록에는 이전 세션 동안 포그라운드에서 앱이 등록한 백그라운드 작업이 포함되므로 백그라운드 작업을 여러 번 다시 등록하기 전에 확인할 수 있습니다. 자세한 내용은 백그라운드 작업을 등록하는 방법을 참조하세요.
알아야 할 사항
기술
사전 요구 사항
- 이 항목에서는 백그라운드 작업을 등록하는 앱이 있고 등록된 백그라운드 작업에서 취소된 백그라운드 작업을 처리하는 방법에 설명된 대로 취소 및 진행을 처리하는 것으로 가정합니다. 백그라운드 작업을 빠르게 작성하려면 빠른 시작: 백그라운드 작업 만들기 및 등록을 참조하세요. 조건 및 트리거에 대한 자세한 내용은 백그라운드 작업을 사용하여 앱 지원을 참조하세요.
지침
단계 1:
응용 프로그램에 의해 현재 등록된 백그라운드 작업 목록은 Windows.ApplicationModel.Background.BackgroundTaskRegistration.AllTasks 속성에 보관됩니다. while 루프를 사용하여 이 목록을 검색하고 백그라운드 작업의 이름을 찾습니다.
예를 들어 백그라운드 작업 샘플은 서비스 제공 완료 백그라운드 작업을 등록하기 전에 다음 코드를 사용하여 이 작업이 이미 등록되어 있는지를 확인합니다.
//
// Check whether the servicing-complete background task is already registered.
//
var iter = Windows.ApplicationModel.Background.BackgroundTaskRegistration.allTasks.first();
var hascur = iter.hasCurrent;
while (hascur) {
var cur = iter.current.value;
if (cur.name === BackgroundTaskSample.servicingCompleteTaskName) {
BackgroundTaskSample.updateBackgroundTaskStatus(BackgroundTaskSample.servicingCompleteTaskName, true);
return;
}
hascur = iter.moveNext();
}
단계 2:
백그라운드 작업을 등록하는 앱은 둘 이상의 경우에 등록을 조회할 수 있습니다. 이름에 따라 백그라운드 작업을 찾는 함수를 만들면 이 작업을 더 쉽게 만들 수 있습니다. 예를 들어 이 함수에서 작업을 찾지 못하면 null을 반환하여 앱에서 작업을 등록할지 여부를 결정할 수 없습니다.
다음은 앱에서 사용할 수 있는 함수입니다.
//
// 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) {
//
// The task is registered, return it.
//
return cur;
}
hascur = iter.moveNext();
}
//
// The task was not found. Return null.
//
return null;
}