2011-12-05 18 views
2

バックグラウンドに移行した後にOSから少し時間を要しても、バックグラウンドタスクが実行できないという印象を受けましたb)3つのUIBackgroundModeのうちの1つを使用する場合)。 バックグラウンドタイマーの作成に関する混乱

しかし、このスレッドは、このように、バックグラウンドを達成することが実際に可能であることを意味している、無背景のアプリに関する一般的な制限で作ら言及されているが、そのスレッドではまだバックグラウンドタイマー

iOS4 Create Background Timer

の作成について話していますタイマーによる発言

誰かがこれを明確にしてください。

performSelector:withObject:afterDelayを長い遅延時間(数時間または数日)で呼び出してアプリケーションがバックグラウンドに移動し、UIBackgroundModeがない場合、その時間が経過するとどうなりますか?

答えて

0

なぜテストしないのですか?

あなたのアプリケーション(および実行ループ)は一時停止され、フォアグラウンドで再びタイマーを起動したときに通常のように続行されると思います。 NSTimerのドキュメントを読んだ場合、その動作についてのヒントが得られます。

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

タイマーの焼成時間が長いコールアウト中または実行ループは、タイマーを監視していないモードである間、タイマーが次回まで発生しません発生した場合に実行ループをチェックタイマーしたがって、タイマーが潜在的に発火する実際の時間は、発射予定時間の後のかなりの期間である可能性がある。

この文脈では、長いコールアウトについて話しますが、サスペンド/レジュームにはおそらく同様の効果があります。

0

アプリがフォアグラウンドにあるときのタイマーです。これは、メインスレッドの「バックグラウンド」で実行される意味でのバックグラウンドタイマーです。

+0

このスレッドでは、オペレーションの状態を要件として「スレッドをバックグラウンドに維持するにはどうすればよいか」したがって、私は彼の質問を引き継いだので、回答はそれが条件であるという文脈の中にある。彼がスレッドをバックグラウンドにとどまらせる必要がある場合、これは供給された回答が無関係であることを意味しますか? – Gruntcakes