Rob*_*Mao 9 iphone core-data grand-central-dispatch ios
我正在使用调度队列来管理一系列后台任务(根据用户的需求下载多个文件,而无需在UI中等待),到目前为止它工作得很好.更重要的是,我需要执行未完成的任务,例如,如果没有网络可达性,或应用程序崩溃,或手机电池耗尽,下次应用程序运行时,所有任务将自动恢复.
我打算让每个任务块在核心数据上下文中保存任务,并在任务完成后将其删除,并且我还需要在应用程序启动时执行检查,看看是否有任务要做.
创建此类应用程序的最佳做法是什么?是否有可以重复使用的示例,教程或库?
你的技术应该很管用。设计管理后台任务的类以“盲目”执行分配给它的任何任务。
从各种视图控制器向此类提交任务。提交方法应该类似于
-(void) submitTask:(MyTask*) task {
task.completionHandler = ^{ [self.runningTasks removeObject:task];}
[self.taskQueue addOperation: task];
}
Run Code Online (Sandbox Code Playgroud)
我假设 MyTask 是 NSOperation 的子类,taskQueue 是 NSOperationQueue。runningTasks 只是一个 NSMutableArray,当您收到 UIApplicationDidEnterBackgroundNotification 时,它会序列化到磁盘(CoreData 或您喜欢的任何格式)。
您也可以使用 GCD 实现类似的设计。
| 归档时间: |
|
| 查看次数: |
2581 次 |
| 最近记录: |