我有一个要求,当应用程序进入后台状态时,我需要创建和启动一个线程。Created Thread 的功能是从本地数据库中获取数据并上传到服务器,我不需要对 UI 进行任何更新。我的问题是:
- 我应该在哪里创建线程 - 在
applicationWillResignActive
方法中还是在applicationDidEnterBackground
? - 哪种是创建线程的最佳方式 - nsthread方式或 GCD 或 Posix 方式?
我尝试过的事情
- 我已经在 Android 上工作过,所以我知道如何实现这种情况,但我是 iOS 新手,所以我开始有点困惑。
我刚刚尝试了 with 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]; }
这是创建线程的正确方法,还是我需要做一些更改?如果没有,请指导我如何实现这一目标。提前致谢