applicationDidEnterBackground の中から beginBackgroundTaskWithExpirationHandler を呼ぶと backgroundTimeRemaining は 600 秒にセットされる(ことが多い?)
これをすぎても実行していると、先のポストと同様に終了させられる。
デバッガで実行していると、GCD でバックグラウンドジョブを投入した場合はちゃんと終了させられてしまうのだが、performSelector でバックグラウンドジョブを投入した場合は、生き残ってしまう(backgroundTimeRemaining がマイナスになって動き続ける)ので、必ず Organizer の Console で確認。
ちなみに1秒毎にログを出力してスリープするような軽いジョブを投入したらタイムアウトでサスペンドに移行した。
また延々素数を計算するようなジョブを投入するとタイムアウトで Kill された。
posted by
Saturn on Thu 25 Nov 2010 at 02:51 with 0 comments