2017-12-20 9 views
0

내 Xamarin.Forms (PCL) 앱이 닫힐 때 어떻게 코드를 실행할 수 있습니까? (Windows의 Application.ApplicationExit 이벤트와 비슷합니다.)앱 닫기 감지

응용 프로그램이 종료되기 전에 수행해야 할 작업이 있으며 사용자가 리소스를 필요로하는 장치에 의해 응용 프로그램이 종료 될 수 있습니다.

답변

2

: 응용 프로그램 종료에 대한 방법이 없습니다

하는 것으로

당신이 당신의 ApplicationOnSleep 함수를 재정의 할 수있는 배경 상태를 감지합니다. 보통 상황 (즉, 충돌이 아님)에서 코드에 대한 추가 알림없이 OnSleep 상태에서 응용 프로그램 종료가 발생합니다.

App.xaml.cs에는 OnSleep 방법이 각 플랫폼에 해당하는 후크로 제공됩니다.

protected override void OnSleep() 
{ 
    // TODO write code when your app goes to bed 
} 

그러나 앱이 실제로 닫히는 모든 시나리오에서 이것이 보장된다고 보장 할 수는 없습니다. 따라서 가능하다면 대안을 찾아야합니다.

+0

감사합니다. (아직 수락 할 수 없습니다 .7 분 안에 만 가능합니다.) – ispiro

+0

사용자가 실행중인 응용 프로그램 목록에서 응용 프로그램을 닫으려면 X를 두 드릴 때'onSleep '이 발생하는지 알고 있습니까? (또는 iOS에서 스 와이프) – ispiro

+0

인용문에 명시된 바와 같이 정상적인 상황에서는 'OnSleep'을 발생시켜야합니다. 따라서 디버그 출력을 추가하여 코드에서 어떤 일이 발생하는지 확인하여 문제를 조사하는 것이 좋습니다. –

1

모바일 응용 프로그램에서 프로세스가 종료되면 실제 응용 프로그램 종료를 감지 할 수 없으며 응용 프로그램이 백그라운드로 전환 될 때 감지 할 수 있습니다 (응용 프로그램 스 와이프가 배경 입력으로 감지 되더라도 강제 종료 만 트래핑되지 않음).). Xamarin.Forms lifecycle documentation에서

protected override void OnSleep() 
{ 
    Debug.WriteLine ("OnSleep"); 
}