3

iPhoneでこれに対する答えを見つけました: 最後の画面タッチ以降のユーザーの非アクティブ/アイドル時間を検出していますが、デバイスが非アクティブ/スリープ状態になるとどうなりますか? タイマーが停止しますよね?

4

1 に答える 1

2

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/nstimer_Class/Reference/NSTimer.html

タイマーはリアルタイムのメカニズムではありません。タイマーが追加された実行ループ モードの 1 つが実行中で、タイマーの起動時間が経過したかどうかを確認できる場合にのみ起動します。典型的な実行ループが管理するさまざまな入力ソースのため、タイマーの時間間隔の有効な分解能は 50 ~ 100 ミリ秒程度に制限されます。長いコールアウト中、または実行ループがタイマーを監視していないモードにある間にタイマーの起動時間が発生した場合、実行ループが次にタイマーをチェックするまで、タイマーは起動しません。したがって、タイマーが潜在的に起動する実際の時間は、スケジュールされた起動時間よりもかなりの時間になる可能性があります。

そのため、アプリが非アクティブな状態になると、タイマーの起動が停止します。アプリがアクティブな状態に戻ると、タイマーは再び起動を再開します。

于 2012-06-19T21:45:51.423 に答える