2016-11-28 3 views
0

사용자가 내 앱을 죽일 때마다 앱이 알림을받는 것이 중요합니다. 앱을 배경으로 이동하지 않고 실제로 홈 버튼을 두 번 탭하고 앱 스크린 샷을 스 와이프하여 앱을 완전히 종료하는 것이 중요합니다. 나는 applicationWillTerminate()가 거의 호출되지 않는다는 것을 안다. 그래서 나는 사용자가 앱을 죽일 때 가장 안전한 방법을 알리는 것이 궁금했다. 많은 iOS 사용자가 앱 사용을 끝내면 앱을 종료 할 수있는 습관을 갖기 때문에 애플이 어떤 형태로든 해결책을 제시하지는 않을 것입니다. 그렇다면 정말 이상 할 것입니다. 이 사건을 포착하는 것은 불가능합니다. 내가해야 할 일은 URLRequest을 끄집어 내 웹 서비스에 업데이트 지침을 보내는 것뿐입니다.앱이 죽으면 웹 서비스에 요청을 보냅니 까? 012 신속한 3)

+0

'SIG_KILL'또는 'SIG_TERM'신호를 가로 챌 가능성이 있습니다.이 두 신호 중 하나가 죽을 때 앱으로 전송됩니다. 그러나 귀하의 앱이 그 시점에서 많은 것을 할 수있는 위치에 있는지 여부는 확실하지 않습니다. – Cristik

+0

@Cristik 가치있는 시도 일 것 같습니다. 어떻게해야합니까? –

답변

0

관찰자를 추가하여 UIApplicationWillTerminateNotification을 처리 할 때 일관성이 높아집니다. 사용자가 홈 버튼을 두 번 탭하고 앱을 스 와이프 해 죽일 때 호출됩니다.

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool 
{ 
    NSNotificationCenter.defaultCenter().addObserver(self, selector:#selector(AppDelegate.onAppWillTerminate(_:)), name:UIApplicationWillTerminateNotification, object:nil) 
    return true 
} 


func onAppWillTerminate(notification:NSNotification) 
{ 
    print("onAppWillTerminate") 
} 
+1

와우, 작동합니다! 나는 그것을 얻지 않는다. NSNotification에 앱 종료 알림이있는 경우 'applicationWillTerminate()'가 거의 호출되지 않습니다 (주로 사용 안 함). 왜 애플은이 알림을 사용하는 대신'AppDelegate'에 델리게이트 메소드를 구현하지 않습니까? 어쨌든, 고마워요! 답을 읽었을 때, 모든 사람들이 나에게 이미 '앱 마감'이벤트를 잡는 것이 불가능하다는 사실을 말하고 있기 때문에 나는 제대로 작동 할 것이라고 확신하지 못했습니다. 당신의 대답은 많은 사람들이 틀린 것을 증명합니다. 놀랍게도 이것에 대한 해결 방법이 있습니다. 다시 한 번 감사드립니다! –

+0

당신을 환영합니다! 도와 줄 수있어서 기뻐! :) –