アプリがバックグラウンドに移動するときに、電話がかかってきたためにその状態に移行したか、ユーザーがホームボタンを押したためにその状態に移行したかによって、異なるアクションを実行したいと思います。
どちらの場合も、アプリデリゲートはwillResignActive:を受け取り、次にdidEnterBackground:呼び出しを受け取ります。したがって、アプリデリゲートの呼び出しだけでは、違いを判断できないように見えます。何か方法はありますか?
アプリがバックグラウンドに移動するときに、電話がかかってきたためにその状態に移行したか、ユーザーがホームボタンを押したためにその状態に移行したかによって、異なるアクションを実行したいと思います。
どちらの場合も、アプリデリゲートはwillResignActive:を受け取り、次にdidEnterBackground:呼び出しを受け取ります。したがって、アプリデリゲートの呼び出しだけでは、違いを判断できないように見えます。何か方法はありますか?
UIApplicationDelegate プロトコルには、さまざまなメソッドがありMonitoring Application State Changes
ます。
残念ながら(あなたにとって)、バックグラウンドに入るということはバックグラウンドに入るということであり、その理由について区別はありません。(セキュリティ上の理由から) すべてを壁で囲う Apple のアプリ設計を考えると、アプリケーションの外部で電話で何が起こっているかについての詳細を提供することはありません。
これら 2 つのケースで異なる動作が必要かどうかは確かに疑問ですが、アプリの詳細はわかりません。