バックグラウンド実行時にゲームを止める
ホームボタンを押した時の動作
今まで自分のアプリではホームボタンを押したらバックグラウンド実行をしない設定
にしていたのですが、ホームボタンを押した時に一時中断できるようにするには
どうすればいいか考えてみます。
アプリ起動、終了時を通知するメソッド
NSNotficationCenterと言うものを使ってバックグラウンドに入った時、戻ってきた時を
通知して処理を行います。
上がバックグラウンドに入った時に通知してくれて下がフォアグラウンドに
入った時に通知してくれます。その時の処理はセレクターを呼び出すのでそこに処理を書きます。
・問題点
自分が実装しようとしているのはタイムアタックちんあなごという自分の作成した
アプリなのですがバックグラウンド、フォアグラウンドで処理をする時の問題点が
いくつかあります。
・ホームボタンを押した正確な時間で止められるのか?また戻ってきた時も正確に時間 をリスタートできるのか?
後者については戻って来た後のリスタートタイミングとタッチ判定の調整で
なんとかなりそうなのですが、ホームボタンを押した瞬間にタイマーが動いていれば
ピタリと止める!という事が難しそうなのです。実際に UIApplicationDidEnterBackgroundNotification object
でバックグラウンド直後を取った場合に0.6〜1.0秒程度のタイムラグが発生します。
ホームボタンを押してからバックグラウンドに移るまでの時間がそこにあるわけです
ちなみにホームボタンを押した直後のタイミングの通知は探しても見つかりません
でした。(探し方が下手でみつけられてない可能性もありますが)
なのでそこの時間の問題をどうやって解決するか、またはどうやってごまかすか
という難題があるのです。