この質問はこのフォーラムのいくつかの本質のようです。アクティブなiPhoneアプリケーションが継続して実行され、具体的には、非アクティブ状態に入った後に(アイドルタイマーが画面ロックを蹴るか、またはユーザーが押している間に)タイマーコールバックを受け続けることが可能であると考えていますハードウェアロックボタン)。iPhoneアプリケーションが動作していない間のNSTimerコールバック
ドキュメントでは、アプリケーションがアクティブではない間に実行中ですが、着信イベントをディスパッチしないことを具体的に示しています(NDAについては不安なのでリンクしません。違反?sigh)。
また、ユーザー "Ambr Str"の2つの回答は、タイマーコールバックの受信を継続することができると直接記述しており、達成のためのコードを提供しています(これは私が新しいユーザー、申し訳ありません - 「iPhoneがスタンバイモードに入ったときにiPhoneアプリに何が起こるのですか?」という質問を検索して答えを見つける)。
私は自分のコールバックを作成しようとしましたが、私のアプリケーションが非アクティブになると、コールバックの実行が停止します。
iPhoneが接続されている間、アイドルタイムアウトまたはスリープボタンが押されたためにアプリケーションが非アクティブになった場合、コールバックが引き続き発生することに気付きました。
UIApplication.idleTimerDisabledはまったく役に立ちますか、ユーザーが手動でスリープボタンを押したときに機能しませんか? –
あなたが提案したように、ユーザーがスリープボタンを押した場合、UIApplication.idleTimerDisabledは機能しませんが、それ以上のことはありません... UIApplication.idleTimerDisabledは、アプリケーションが非アクティブ状態になるのを止めたい場合に最適です。デバイスは対話しません。ゲームには適しています。 私の場合、特にアプリケーションを非アクティブにしたい(できるだけデバイスの電源を確保したい)。さらに、私は、入力が受信されないようにユーザがデバイスをロックできるようにしたい。 –
iOS 5との互換性のある実装はhttps://github.com/mruegenberg/MMPDeepSleepPreventerです – mrueg