정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

Windows Phone 8의 유휴 검색

2014-06-18

적용 대상: Windows Phone 8 및 Windows Phone Silverlight 8.1 | Windows Phone OS 7.1

 

Windows Phone 운영 체제는 사용자나 현재 앱이 유휴 상태임을 감지할 경우 단말기의 전력 소모량을 줄이는 조치를 취할 수 있습니다. 만드는 앱 유형에 따라 사용자나 앱에 대해 유휴 검색을 사용하지 않도록 설정해야 할 수 있습니다. 이 항목에서는 운영 체제의 유휴 동작을 수정하는 방법에 대해 설명합니다.

중요중요:

이 Windows Phone 기능에는 앱이 Windows Phone 스토어 에 표시되기 위해 충족해야 하는 인증 요구 사항이 있습니다. 앱을 디자인하고 테스트할 때 이러한 요구 사항을 고려해야 합니다. 자세한 내용은 Windows Phone을 위한 앱 인증 요구 사항을 참조하세요.

이 항목에는 다음 단원이 포함되어 있습니다.

 

현재 릴리스에서는 사용자가 휴대폰 잠금을 허용한 경우 앱이 유휴 상태로 간주됩니다. 이후 릴리스에서는 앱을 유휴 상태로 식별하는 조건이 변경될 수 있습니다. 앱 유휴 검색을 사용하도록 설정하면 운영 체제가 유휴 앱을 비활성화합니다. 앱 유휴 검색을 사용하지 않도록 설정하면 운영 체제가 이 서비스를 수행하지 않도록 요청됩니다. 앱의 PhoneApplicationService 개체에 대한 ApplicationIdleDetectionMode 속성을 Disabled로 설정하여 앱 유휴 검색을 사용하지 않도록 설정합니다. 앱 유휴 검색이 사용되지 않는 경우에도 운영 체제가 배터리 고갈 등의 다른 이유로 앱을 비활성화할 수 있습니다.

휴대폰이 잠금 해제된 후 앱이 계속되는 시간을 단축하거나 휴대폰이 잠겨 있는 동안 앱 상태를 유지하려면 유휴 검색을 비활성화하면 안 됩니다. Windows Phone 앱은 잠금 화면이 사용될 경우 유휴 상태로 전환되고, 휴대폰의 잠금이 해제되면 유휴 상태로 전환되었을 때와 동일한 상태에서 신속하게 다시 시작됩니다. 이 작업은 모두 자동으로 수행되며 유휴 검색을 비활성화하는 경우와 달리 배터리가 소모되거나 사용자에게 숨겨진 데이터 요금제 비용이 발생하지 않습니다.

Windows Phone 앱에서 유휴 검색을 비활성화하는 적절한 상황으로는 운동 추적 앱처럼 휴대폰이 잠겨 있는 동안 핵심 기능이 계속되거나, 잠금 상태에서 백그라운드 에이전트가 지원하지 않는 방식으로 오디오를 재생하는 경우를 들 수 있습니다.

주의주의:

빠르게 앱을 계속하기 위해 앱 유휴 검색을 비활성화하면 안 됩니다. 이렇게 할 경우 성능 또는 앱 상태 유지 관리가 향상되지 않으며 앱이 단말기 배터리를 보다 빠르게 소모하여 사용자 환경에 부정적인 영향을 줍니다.

앱 유휴 검색을 사용하지 않도록 설정하는 앱에 대한 검사 목록

Windows Phone 앱이 잠금 화면에서 실행되기 위해 앱 유휴 검색을 사용하지 않도록 설정하는 경우 다음 작업을 수행하여 잠금 화면이 사용되는 동안의 앱 전력 소모량을 줄여야 합니다.

  1. 앱의 루트 PhoneApplicationFrame 개체에 대한 Obscured 이벤트 처리기를 구현합니다. 이 이벤트는 잠금 화면이 사용되거나 수신 통화와 같은 다른 일부 작업으로 인해 실행 중인 앱의 프레임이 가려질 때 발생합니다. Obscured 이벤트 처리기에서 다음 단계를 수행합니다.

  2. Timer.DisposeDispatcherTimer.Stop을 사용하여 활성 타이머를 모두 중지합니다.

  3. Storyboard.Pause 또는 Storyboard.Stop을 호출하여 애니메이션을 모두 중지합니다.

  4. Stop()을 호출하여 가속도계를 중지합니다.

  5. Stop()을 호출하여 위치 서비스를 중지합니다.

  6. PowerMode 속성을 Off로 설정하여 FM 라디오를 끕니다.

  7. 새 네트워크 요청 및 격리된 저장소의 작업을 수행하지 않도록 앱에 알립니다.

  8. Unobscured 이벤트 처리기를 구현합니다. 이 이벤트는 잠금 화면이 사용되지 않을 때 발생합니다. Obscured 벤트 처리기에서 중지한 모든 항목을 이 이벤트 처리기에서 다시 시작해야 합니다.

앱 유휴 검색을 사용하지 않도록 설정하는 XNA Framework 게임에 대한 검사 목록

Windows Phone용 XNA 게임이 잠금 화면에서 실행되기 위해 앱 유휴 검색을 사용하지 않도록 설정하는 경우 다음 작업을 수행하여 잠금 화면이 사용되는 동안의 앱 전력 소모량을 줄여야 합니다.

  1. 아무 작업도 수행하지 않고 Microsoft.Xna.Framework.Game.Update 메서드에서 즉시 반환되도록 앱에 알립니다.

  2. Microsoft.Xna.Framework.Game.InactiveSleepTime 속성을 1초로 설정합니다.

앱 유휴 검색을 사용하지 않도록 설정하는 경우의 기타 고려 사항

다음 목록에는 유휴 검색을 사용하지 않도록 설정하는 앱에 대한 중요한 정보가 나와 있습니다.

  • 휴대폰이 잠겨 있는 동안 실행되는 앱은 단말기의 배터리를 계속 소모하기 때문에 이 기능을 사용할 때는 주의해야 합니다.

  • 앱이 MediaElement 개체를 사용하는 경우 잠금 화면이 사용되는 동안 MediaElement가 리소스를 사용하지 않도록 하기 위해 Obscured 이벤트 처리기에서 해당 MediaElement.Source 속성을 null로 설정한 다음 Unobscured 이벤트에서 이전 값을 복원해야 합니다.

  • 가속도계는 잠금 화면이 사용되는 동안 데이터를 반환하지 않습니다.

  • PhoneApplicationFrame 개체가 초기화될 때까지 ApplicationIdleDetectionMode를 설정할 수 없습니다.

  • 실제로 작업을 수행하기 전에 UserIdleDetectionMode 또는 ApplicationIdleDetectionMode를 사용하지 않도록 설정할 것인지에 대한 확인 메시지를 항상 사용자에게 표시합니다. 앱에서 사용자가 이 동작을 원한다고 가정해서는 안 됩니다.

  • 현재 릴리스에서는 앱 유휴 검색이 비활성화된 후 단일 앱 인스턴스에서 이 기능을 사용하도록 설정할 수 없습니다. 이렇게 하면 예외가 발생합니다. 이후 릴리스에서는 이 기능이 지원될 수도 있으므로 앱이 더 이상 필요하지 않을 때 앱 유휴 검색을 사용하지 않도록 설정하고 예상 예외를 catch할 수 있습니다. 다음 코드 조각에서는 이러한 구현을 보여 줍니다.

            // Custom function to turn off idle detection. This will throw an exception in the current release.
            public void TryReenableApplicationIdleDetection()
            {
                bool didEnable = false;
                try
                {
                    Microsoft.Phone.Shell.PhoneApplicationService.Current.ApplicationIdleDetectionMode =
                        Microsoft.Phone.Shell.IdleDetectionMode.Enabled;
                    didEnable = true;
                }
                catch (InvalidOperationException ex)
                {
                    // This exception is expected in the current release.
                }
    
                // Possibly use the value of didEnable to decide what to do next.
                // If it is 'true', then your app will be deactivated. 
                // If it is 'false', then your app will keep running.
            }
    
    

앱의 PhoneApplicationService 개체에 대한 UserIdleDetectionMode 속성을 Disabled로 설정하여 사용자 유휴 검색을 사용하지 않도록 설정합니다. 사용자 유휴 검색이 사용되는 경우 사용자가 유휴 상태이면 운영 체제가 저전력 사용 상태로 전환됩니다. 이 속성을 사용하지 않도록 설정하면 운영 체제가 이 서비스를 수행하지 않도록 요청됩니다. 사용자가 실제로 화면 또는 하드웨어 버튼과 상호 작용하지 않을 때도 앱이 계속 실행되어야 하는 경우 이 속성을 사용하여 사용자 유휴 검색을 사용하지 않도록 설정합니다. 예제 시나리오에는 턴바이턴 내비게이션 앱과 입력에 가속도계를 사용하는 게임이 있습니다.

이 기능을 사용할 때는 주의해야 합니다. 사용자 유휴 검색을 사용하지 않도록 설정하는 앱은 사용자가 휴대폰을 사용하지 않을 때도 계속 실행되고 배터리 전력을 사용합니다. 사용자 유휴 검색을 사용하지 않도록 설정하는 앱은 고유한 형태의 유휴 검색을 구현하고 필요한 경우 UserIdleDetectionMode를 사용하도록 설정하는 것이 좋습니다. 예를 들어 가속도계 기반 게임은 가속도계가 일정한 기간 동안 아무 활동도 표시하지 않을 경우 사용자 유휴 검색을 사용하도록 설정할 수 있습니다.

현재 릴리스에서는 사용자가 단말기의 설정 페이지에서 지정된 단말기 잠금 시간 제한 창 내에 화면이나 하드웨어 버튼을 터치하지 않은 경우 운영 체제에서 사용자가 유휴 상태로 간주됩니다. 이후 릴리스에서는 사용자 유휴 상태 검색 조건이 변경될 수도 있습니다.

표시: