私のiPhoneアプリケーションには、UIとゲームという2つの状態があります。iOS idleTimerDisabledの動作
[[UIApplication sharedApplication].idleTimerDisabled = TRUE;
をしかし、すぐに、私はUIに戻って、私は、オートスリープが再びアクティブになりたい: ゲームだけ傾けるのデバイスを使用して再生されるので、私は、ゲーム開始で自動スリープをオフに。だから、ゲーム終了で、私はそれを復元:
[[UIApplication sharedApplication].idleTimerDisabled = FALSE;
が長いゲームプレイした後、それは私が試合後に行く最初のUI画面の即時暗くしました。 アイドルタイマーが無効になっても、それはまだ時間を計算していたようです。そして、それは "有効にする"の直後に発砲した。この問題を解決するにはどうすればよいですか?
2番目のオプションは私がすでに使っているものです。私は、この問題を修正するためにあまり「ハッキーな」方法が存在しないのだろうかと思います。 – Nick
システムのアイドルタイムアウト値を推測するのはあまりいいことではありませんが、それ以外はかなり良い "ハック"です。あなたはプログラム的なタッチイベントを試すことができますが、たとえそれが機能しても、それほど「ハッキー」ではありません。 – Gil
@Gilおそらくこの権利を理解していません。 idleTimerDisabled = NOコールの設定を任意に延期すると、OPが見ている「競合状態」にどのように役立つでしょうか?たとえば、iOSタイマーが30秒に設定されていて、現在25秒になっていた場合、アプリは戻ってから5秒の遅延を強制します。あなたはiOSの内部アイドルタイマーのステータスを知らないので、同じ問題が発生するでしょうか? – stonedauwg