私のアプリがユーザーのアプリを倒すたびに通知されることは非常に重要です(バックグラウンドに移動するのではなく、ホームボタンをダブルタップしてアプリのスクリーンショットをスワイプすることで完全に終了します)。私はapplicationWillTerminate()
がほとんど呼び出されていないことを知っているので、ユーザーがアプリを終了するときに最も安全な方法が通知されることを迷っていました。多くのiOSユーザーがアプリを使い終わった時点でアプリを殺すように習慣を作っているので、Appleがこれのために何らかの形でソリューションを提供しているとは思えないので、本当に本当に本当に本当に奇妙なものになるだろうこのイベントをキャッチすることは不可能です。私がする必要があるのは、URLRequest
をオフにして、私のWebサービスに更新指示を送ることだけです。アプリが死んでもウェブサービスにリクエストを送信できますか? (Swift 3)
答えて
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")
}
うわー、それは動作します!理解できません。 NSNotificationにアプリケーション終了の通知がある場合、 'applicationWillTerminate()'はほとんど呼び出されません(主に決して)。なぜ、Appleはこの通知を使うのではなく、 'AppDelegate'にデリゲートメソッドを実装するだけですか?とにかく、ありがとう!あなたの答えを読んだとき、誰もが何年もの間私に「app closing」イベントをキャッチすることは不可能だと言っていたので、それはうまくいくとは思わなかった。あなたの答えはとても多くの人が間違っていることを証明します。うれしいことに、これには回避策があります。再度、感謝します! –
あなたは大歓迎です!お力になれて、嬉しいです! :) –
- 1. Swift 3の動画をCloudineに送信できません。
- 2. Swift 3 URLSessionが空のリクエストを送信しています
- 3. Ibm mobile first:アプリが死んでもイベントを送信する方法はありますか
- 4. AjaxでASMXウェブサービスへのリクエストを送信しました
- 5. アプリが死んでも毎日通知を配信する最も良い方法は何ですか
- 6. アプリは「送信信号」で死ぬ。 SIG:9 "while rotate
- 7. アプリが死んでもいつでもサービス停止が発生する
- 8. Swift 3 Alamofireをリクエストするパラメータを送信する
- 9. Swift 3 PHAssetを電子メールで送信
- 10. アプリが死んでもコンテンツを受け取る方法は?
- 11. アプリがバックグラウンドのときにHTTPリクエストを送信する
- 12. アプリが終了してもiOSで非同期HTTP POSTリクエストを送信する
- 13. ループトラフファイルとウェブサービスに送信
- 14. 「送信信号」でアプリが死ぬ例外やその他の情報はありません
- 15. すべてのページでAJAXリクエストを送信できません
- 16. アプリがバックグラウンドモードの場合、リクエストは送信されません。オプション
- 17. クラウドアプリケーションからGETリクエストを送信できません
- 18. Windows 8.1のアプリケーションからHTTPリクエストを送信できません
- 19. swiftからメールを送信3
- 20. soapclientとhttpsでリクエストを送信できません
- 21. インスタンスに送信された認識できないセレクタ// swift 3
- 22. kafka.producer.async.DefaultEventHandler - トピックのリクエストを送信できませんでした。
- 23. wxProgressDialog何らかの理由でアプリが死んでも生き残っていますか?
- 24. NodeJS子プロセスはnet.socket fd:3を送信できません。3
- 25. ビューコントローラ間でデータを送信できません。Swift
- 26. ボタンの値をコントローラに送信しても値を送信できません
- 27. Googleにリクエストを送信できません
- 28. Google Apps ScriptにPOSTリクエストを送信できません
- 29. TomcatのCASサーバーにWebリクエストを送信できません
- 30. Swiftで、SMSは送信できませんでしたが、MFMessageComposeViewControllerデリゲートショーが送信されました
あなたはこれらの二つのうちの一つは、それが殺されたときにアプリに送るなる可能性が高い、 'SIG_KILL'または' SIG_TERM'信号を傍受してみてください可能性があります。しかし、あなたのアプリがそのライフサイクル(その終わり近く)でその時に多くのことをする立場にあるのかどうかわからない – Cristik
@Cristikは試してみる価値があると思います。それ、どうやったら出来るの? –