我的iPhone應用程序有兩個狀態:UI和遊戲。 遊戲中使用設備只傾斜發揮,所以我切換自動休眠關閉的遊戲開始:iOS idleTimerDisabled行爲
[[UIApplication sharedApplication].idleTimerDisabled = TRUE;
但只要我回到UI,我想自動休眠再次激活。所以,在遊戲結束我恢復它:
[[UIApplication sharedApplication].idleTimerDisabled = FALSE;
長時間玩遊戲後,結果是第一UI畫面,我賽後去立即變黑。 所以看起來,當空閒計時器被禁用時,它仍然是計算時間。它在「啓用」後立即啓動。我該如何解決這個問題?
第二個選項正是我已經使用的。我想知道是否有更少的「黑客」方式來修正這個問題。 – Nick
猜測系統空閒超時值並不是很好,但除此之外它是一個相當不錯的「黑客」。你可以嘗試一個編程式觸摸事件,但即使它起作用,它也不會少「哈克」。 – Gil
@Gil也許我不明白這個權利。如何任意拖延設置idleTimerDisabled = NO調用幫助與OP正在看到的「競爭條件」?例如,如果iOS定時器設置爲30秒並且當前處於第25秒,那麼應用程序在返回時強制延遲5秒。由於您不知道iOS內部空閒計時器的狀態,因此只會導致相同的問題? – stonedauwg