質問: こんにちは! iosにてホームボタンを押してアプリを閉じるときにある処理をさせたいです。 たぶんアプリがバックグラウンドに移行したらある処理をさせるようにコーディングしないといけないと思っているのですが、 電話がかかってきて電話に出たとき、バックグラウンドに移行してしまいますが、そのときは ある処理というのをさせたくありません。 何か良い方法はありませんでしょうか。
回答: Core Telephony Frameworkというのでなんとかできないか? CTCallCenterのcallEventHandlerというので電話関連のイベント通知されるみたいだから、そこで「電話に出ているとき」ならCTCallStateConnectedが通知されかつその後CTCallStateDisconnectedされてない状態ってわけだからハンドラ内で状態フラグでも管理しとく。そしてapplicationDidEnterBackgroundとかいうのの中で判断できないか? でもCTCallStateConnected時もCTCallStateDisconnected時もアプリがバックグラウンドにいるわけだから通知されないのかな?状態管理むずそうだ。CTCallStateIncomingなら通知されるのかな?「ユーザーが電話に出ようとして操作したことにより自分がバックグラウンドにいった」と確実には判断できないとは思うが電話かかってきて数秒以内ならそうだろう、と推測ぐらいはできるんじゃ? どういうイベントフローになるかもわからんし、ほんとに通知されるのかも知らんが興味あるからやってみてくれ!俺も試したいがiOSアプリ開発は素人だし今Macもってないから無理だ!