31歳から始める初心者のアプリ制作勉強ブログ

アプリ制作の勉強の経過や雑記などを書いていきます

バックグラウンド実行時にゲームを止める

ホームボタンを押した時の動作

今まで自分のアプリではホームボタンを押したらバックグラウンド実行をしない設定

にしていたのですが、ホームボタンを押した時に一時中断できるようにするには

どうすればいいか考えてみます。

 アプリ起動、終了時を通知するメソッド

 

NSNotficationCenterと言うものを使ってバックグラウンドに入った時、戻ってきた時を

通知して処理を行います。

f:id:inou-social:20140205170935p:plain

 

上がバックグラウンドに入った時に通知してくれて下がフォアグラウンドに

入った時に通知してくれます。その時の処理はセレクターを呼び出すのでそこに処理を書きます。

 

・問題点

自分が実装しようとしているのはタイムアタックちんあなごという自分の作成した

アプリなのですがバックグラウンド、フォアグラウンドで処理をする時の問題点が

いくつかあります。

・ホームボタンを押した正確な時間で止められるのか?また戻ってきた時も正確に時間 をリスタートできるのか?

 後者については戻って来た後のリスタートタイミングとタッチ判定の調整で

 なんとかなりそうなのですが、ホームボタンを押した瞬間にタイマーが動いていれば

 ピタリと止める!という事が難しそうなのです。実際に     UIApplicationDidEnterBackgroundNotification object

 でバックグラウンド直後を取った場合に0.6〜1.0秒程度のタイムラグが発生します。

 ホームボタンを押してからバックグラウンドに移るまでの時間がそこにあるわけです

 ちなみにホームボタンを押した直後のタイミングの通知は探しても見つかりません

 でした。(探し方が下手でみつけられてない可能性もありますが)

 なのでそこの時間の問題をどうやって解決するか、またはどうやってごまかすか

 という難題があるのです。