2012-08-16 5 views
1

내 Windows phone7 (Silverlight) 응용 프로그램에서 사용자가 응용 프로그램을 종료하기 전에 (예/아니오)를 확인하라는 메시지 상자를 표시해야합니다.종료 (종료) 구현

사용자 확인을 위해 사용자 지정 메시지 상자 (팝업 사용)를 사용해야하고 응용 프로그램을 종료 할 수있는 방법이 없습니다 (응용 프로그램을 종료 할 때 찾을 방법이 없습니다 (dispose() or close())).

나는 사용자 정의 메시지 박스를 사용하지 않은 경우 Device back key press event "OnBackKeyPress"에 내가 사용에게 다음과 같은 논리를 가지고 내 작품 일 것이다 문제는 내가 사용자 정의 메시지 박스 및 완료를 사용할 필요가있다

MessageBoxResult res = MessageBox.Show("Do you want to Exit?", "Exit", MessageBoxButton.OKCancel); 

      if (res == MessageBoxResult.OK) 
      { 
       if (NavigationService.CanGoBack) 
       { 
        while (NavigationService.RemoveBackEntry() != null) 
        { 
         NavigationService.RemoveBackEntry(); 
        } 
       } 
      } 
      else 
      { 
       e.Cancel = true; 
      } 

이 일. 기기의 뒤로 버튼을 사용하지 않고 애플리케이션을 종료하는 버튼을 구현해야하는 경우에도 동일한 문제가 발생합니다.

예외를 발생시키고이를 완료하도록 제안하는 여러 게시물에서 발견되었습니다. 다음 나는 윈도우 마켓 플레이스는이 방법을 증명하는 경우이 또한 확실하지 않은 것이 좋습니다 것을 생각 그들 중 일부

http://mobile.dzone.com/articles/windows-phone-mango-sample-3

http://imaginativeuniversal.com/blog/post/2010/08/22/How-to-Quit-a-WP7-Silverlight-Application.aspx

하지 않습니다 있습니다. 한 번이 문제를 경험 한 사람의 생각을 듣고 싶습니다. 그리고 이것을 달성하기위한 제안 (신청 종료). 감사합니다 inadvance .... !!!!

+0

왜이 익명 투표가 확실하지 않은지 ...... !!!!! – JibW

+0

안녕하세요. exacerbatedexpert 감사합니다. 그래, 예외를 만드는 응용 프로그램을 종료하고 싶지도 않습니다. 좋은 습관은 아닙니다. 메서드를 사용할 수 없으므로 (종료/닫기와 같이) 응용 프로그램에서 "exit"를 구현하는 방법에 대한 아이디어가 있습니까? – JibW

+0

안녕하세요. 이것은 사용자 요구 사항입니다. 사용자가 메인 페이지에 있고 뒤로 버튼을 누르면 종료해야하는지 여부를 묻는 팝업 메시지가 표시됩니다. "예"가 끝나고 "아니오"가 아닌 경우. – JibW

답변

5

당신은 다음 이유로 인해 인증 요구 사항의 몇 가지 문제가있어 시장에 제출하려면 다음을 닫아야하는 응용 프로그램의 첫 번째 화면에서 뒤로 버튼을 누르면

5.2.4.2을 신청.

5.2.2 사용자가 응용 프로그램에서 다른 곳으로 이동할 때 Windows Phone 응용 프로그램이 닫히고 OS에 의해 종료됩니다. 응용 프로그램을 닫은 후에 시작하면 시작 시간이 섹션 5.2.1 - 실행 시간의 요구 사항을 충족해야합니다.

5.2.3 사용자가 시작 단추를 누르거나 장치 시간 초과로 인해 Windows 전화 응용 프로그램이 비활성화됩니다 잠금 화면. Windows Phone 응용 프로그램은 Launcher 또는 Chooser API를 호출하여 비활성화됩니다.

이것은 단지 메시지 상자를 표시 할 수없는 경우입니다.

5.1.2 응용 프로그램은 .NET Framework에서 발행되는 예외를 처리하고 예기치 않게 종료되지해야합니다 응용 프로그램을 termniate에 대한 예외를 사용하여

그리고 기술적으로는 위반입니다. 인증 프로세스 중에 예기치 않은 종료가 있는지 응용 프로그램이 모니터링됩니다. 예기치 않게 종료되는 응용 프로그램이 인증에 실패합니다. 예외를 처리 한 후에도 응용 프로그램을 계속 실행하고 사용자 입력에 응답해야합니다.

개발자는 비현실적이거나 불합리한 요구 사항에 대해 사용자에게 통신하고 있습니다.

+0

안녕하세요. 사용자가 첫 번째 화면에있을 때 뒤로 버튼을 누른 경우에만 사용자 확인을 받으려고합니다. 5.2.2 및 5.2.3에 설명 된 경우가 아님. 5.2.4.2 요구 사항에서 메시지를 실행하기 전에 메시지를 표시 할 수 없다는 것을 의미합니까 (확인을 얻으려고)? – JibW

+0

exacerbatedexpert가 매우 명확하게 설명했습니다. 앱이 인증을 통과하게하려면이 대화 상자를 소개하지 말고 뒤로 버튼과 홈 버튼이 예상대로 앱을 종료하도록하십시오. – Gambit

+2

WP 사용자는 특정 경험을 기대합니다. 해당 환경을 변경하고 전화가 예상대로 작동하지 않으면 앱을 닫으면 사용자 경험이 저하됩니다. 나는 당신이 묘사하는 것을 정확하게 수행하는 앱을 보았습니다. 백 프레스에 대한 확인이 나오고, 고통 스럽습니다. 나는 그 앱을 닫고 싶었 기 때문에 그 앱을 쓴 개발자가 나를 짜증나게하고 표준에 맞지 않아 부정적인 경험을하게 되었기 때문에 좋지 않은 리뷰를 받았다. 이제 왜 당신이 악화 된 전문가를 경청해야하는지 알겠습니까? –

0

사용자 지정 메시지 상자를 닫은 후에 발생하는 이벤트를 후크 할 수 있습니다. 이벤트 인수는 사용자의 선택에 대한 정보를 유지합니다. 앱을 종료할지 여부를 결정합니다.

+0

안녕하세요 kvas, 예. 사용자의 선택 사항을 추적 할 수 있습니다 .... 응용 프로그램을 종료 할 코드 (길)를 찾고 있습니다. – JibW

1

죄송합니다. 망고 업데이트를하기 전에 백 스택을 지우고 프로그래밍 방식으로 뒤로 단추를 트리거하십시오. 그러나 SDK 7.1 (wp7.5)에서는 더 이상이 작업을 수행 할 수 없습니다.

내 추천은 사용자 정의 예외 유형 ApplicationXExitException을 생성하여 앱을 종료하는 것입니다. 맞춤 유형의 이유는 시장에서 예외 로그를 ​​가져올 때 실제로 의도하지 않은 예외 인 이 앱을 무효로하고 앱을 의도적으로 종료 한 경우를 제외하고는 앱을 충돌하게 만듭니다.

+0

안녕 밀란, 테스트 응용 프로그램 프로젝트에서 방금 "Microsoft.Xna.Framework.Game"에 대한 참조를 추가하고 "새 게임(). 종료()"를하면 응용 프로그램에서 제대로 종료됩니다. 아직도 어느 쪽이 옳은지 궁금해합니다. 그리고 시장에서 APP를 종료하기 위해 맞춤 예외를 추가 할 수 있습니까? – JibW

+1

여기를 확인하십시오. http://social.msdn.microsoft.com/forums/en-us/wpdevelop/thread/d66ff941-215a-4bb9-8364-2c2abdd5ea23/, 해당 기능의 사용을 권장하지 않습니다. 인증 과정을 통과하지 못합니다. –

+0

고마워, Exception (Custom)을 구현하여 응용 프로그램을 종료하면 인증 프로세스에서 승인을받을 수 있습니까? – JibW