アプリケーションがバックグラウンド状態になったときにスレッドを作成して開始する必要があるという要件があります。作成されたスレッドの機能は、ローカルDBからデータをフェッチしてサーバーにアップロードすることであり、UIを更新する必要はありません。私の質問は次のとおりです。
applicationWillResignActive
メソッドまたはメソッドのいずれかで、スレッドを正確にどこに作成する必要がありapplicationDidEnterBackground
ますか?- スレッドを作成する最良の方法はどれですか? nsthread方法またはGCDまたはPosix方法ですか?
私が試したこと
- 私はすでにAndroidに取り組んでいるので、このシナリオをどのように達成できるかはわかっていますが、iOSは初めてなので、最初は少し混乱しています。
NSThreadの概念を試してみましたが、機能しませんでした。以下は、私の知る限りで書いたコードです。
- (void)applicationWillResignActive:(UIApplication *)application { [NSThread detachNewThreadSelector:@selector(FetchReportFromDBAndUpload) toTarget:self withObject:nil]; } - (void)FetchReportFromDBAndUpload { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; //Check for internet connection and fetch data from DB and upload to server [pool release]; }
これはスレッドを作成する正しい方法ですか、それともいくつかの変更を行う必要がありますか?そうでない場合は、これを達成する方法を教えてください。前もって感謝します