これはごくまれな使用例ですが、良い疑問を投げかけます。どうぞ:
中断が発生したときにゲームを一時停止する必要がある iPhone 用のゲームを開発しています。割り込みハンドラーを使用してapplicationWillResignActive:
applicationDidEnterBackground:
applicationWillEnterForeground:
、applicationDidBecomeActive:
ゲームの一時停止と再開、ゲームの進行状況の保存などを期待どおりに行います。
次のシナリオで問題が発生しています。
- ゲームが実行されており、マルチタスクの割り込みを行います (ホーム ボタンをダブルクリックします)。
applicationWillResignActive:
が呼び出され、ゲームが中断され、すべてが素晴らしいです。- 次に、マルチタスキング バーを開いた状態で、トリプル ホーム クリック割り込みを行います ([設定] -> [一般] -> [アクセシビリティ] -> [トリプル ホーム クリック] を参照し、[確認] オプションを選択します)。オプション ポップアップがマルチタスク バーの上部にスライドして表示され、アプリで割り込みハンドラーが呼び出されません。
- オプションのポップアップをキャンセルします。
applicationDidBecomeActive:
が呼び出されると、マルチタスク バーがまだ開いている間にゲームが再開されます。変ですね。 - ホームボタンをもう一度ダブルクリックしてマルチタスクバーを閉じますが、割り込みハンドラーは呼び出されません。
ここでサムヒルで何が起こっているのですか??? この同じ一連の中断を正しく処理しているように見える他のゲーム (たとえば、Spy Mouse など) を見たことがあります。OS からシステム イベントをキャッチする別の方法があり、それによって中断をより正確に処理できるかどうかを知っている人はいますか? それ、または明らかな何かが欠けていますか?
どんな助けや洞察も大歓迎です。前もって感謝します!