4

アプリケーションが終了すると、データベースにデータを書き込みます。

iOS 4からのようにapplicationWillTerminate:は呼び出されないので、applicationDidEnterBackground:とapplicationWillTerminate:の両方に同じ保存コードを入れました。

applicationDidEnterBackground:で実行されるタスクには数時間かかることを読みました。

それで、データベースへの書き込みにもっと時間がかかる場合、どうすればこれを管理できますか?

4

1 に答える 1

4

applicationDidEnterBackground:メソッドで保存などを実行するのに5秒かかります。

5秒以上必要な場合は、このUIApplicationメソッドを使用して、バックグラウンドスレッドを要求します。これにより、必要な処理をより多く実行できるようになります。

- (UIBackgroundTaskIdentifier)beginBackgroundTaskWithExpirationHandler:(void(^)(void))handler

これに対するAppleのサンプルコードは次のとおりです。

http://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html#//apple_ref/doc/uid/TP40007072-CH5-SW12

于 2011-01-22T23:10:02.817 に答える