2011-10-26 3 views
4

처음 실행했을 때 고지 사항 페이지를 표시하는 응용 프로그램이 있습니다. 수락 또는 거부를 선택하면 페이지가 다시 표시되지 않습니다.Backstack 페이지를 제거하여 응용 프로그램을 종료하는 방법

그러나 처음 실행 후 응용 프로그램을 닫으려고 할 때 뒤로 키를 누르면 고지 사항 페이지로 돌아간 다음 다시 누르면 기본 페이지로 돌아간 다음 다시 끝냅니다.

이것은 처음 응용 프로그램이 실행될 때만 발생하지만 뒤로 키를 누른 상태에서 응용 프로그램을 종료하면 응용 프로그램에서 거부 페이지를 무시하도록하고 싶습니다.

응용 프로그램을 닫으려면 처리되지 않은 예외 오류를 강요하는 것 외에 다른 옵션이 있습니까?

미리 감사드립니다.

해결책 : 내 메인 페이지에 NavigationService.RemoveBackEntry();을 추가하십시오.

private void PhoneApplicationPage_Loaded_1(object sender, RoutedEventArgs e) 
{ 
    NavigationService.RemoveBackEntry(); 
    NavigationService.RemoveBackEntry(); 
} 

답변

3

나는 좀 더 우아한 방법이있을 것이라고 확신하지만 나는 서둘러서 다음과 같이 구현했다.

나는 마지막 페이지를 저장하는 정적 글로벌 enum을 가지고있다. pgDisclaimerpgMain 페이지가 있다고 가정합니다.

페이지의 pgDisclaimer 페이지에서 컨트롤이 어디에서 왔는지 확인하십시오. pgMain에서 온 경우 NavigationService.GoBack()을 실행하면 응용 프로그램이 종료되고 사용자는 실제로 pgDisclaimer 페이지를 볼 수 없습니다 (깜박임조차도 안됨).

편집 : 더 우아한 방법을 발견했습니다. 망고에서는 끔찍하게 명명 된 NavigationService.RemoveBackEntry() 메서드를 사용할 수 있습니다.

+0

그걸 할 수있는 한 가지 방법이있다. 제안을 주셔서 감사합니다.하지만 그렇게 할 수 있다면 팝업이 최고의 솔루션이라고 생각합니다. – Rhys

+0

@Rhys 제 편집보기 - MS가 망고에서이 문제를 해결했습니다. – AngryHacker

+0

고마워. 내 메인 페이지에서 아래를 사용했다. 그것은 작동합니다 ..'private void PhoneApplicationPage_Loaded_1 (객체 발신자, RoutedEventArgs e) { NavigationService.RemoveBackEntry(); NavigationService.RemoveBackEntry(); }' – Rhys

3

페이지가 아닌 팝업으로 면책 조항을 표시하면 탐색 및 백 스택 문제에 대해 걱정할 필요가 없습니다. 나는 채널 9 비디오에서 언급 이것을보고 :

Windows Phone: building apps that customers love, end to end

이 약 26:20에 있습니다 커버 프레젠테이션의 특정 부분. 그는 사용자가 앱을 다시 탐색하지 못하도록하는 로그인 페이지에 대해 논의하고 있지만 개념은 비슷합니다. 또한

, MSDN Blog Post이에서 :

나는 EULA/로그인 화면에 대한 조언의 1 조각을 잊었다 - 페이지로하지 않습니다. 대신 Popup 컨트롤을 만들면 언제든지 (처음 탐색 할 때, 사용자가 앱의 "보호 된"부분에 도달하거나, 시간이 초과 된 후에) 팝업을 표시하거나 숨길 수 있으며 백 스택의 슬롯. 이것은 대부분의 경우를 다루어야합니다.

+0

해당 링크를 찾을 수 있으면 좋을 것입니다. – Rhys

+0

고마워,하지만'NavigationService.RemoveBackEntry();'솔루션을 찾으러 갔다. – Rhys

관련 문제