Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS继续完成任务_Ios - Fatal编程技术网

iOS继续完成任务

iOS继续完成任务,ios,Ios,我正在为正在处理的应用程序实现提交队列。此应用程序旨在响应网络可用性的变化。如果队列中有对象,并且网络连接可用,则应用程序将开始提交队列中的对象,当应用程序位于前台时,该操作将非常有效。当应用程序进入后台并且队列正在提交时,我想做的是让队列继续提交,直到它尝试提交所有队列 队列提交的方法是: -(void)submitAll { dispatch_async( dispatch_get_global_queue(DISPTACH_PRIOROITY_DEFAULT,0) ^(void){

我正在为正在处理的应用程序实现提交队列。此应用程序旨在响应网络可用性的变化。如果队列中有对象,并且网络连接可用,则应用程序将开始提交队列中的对象,当应用程序位于前台时,该操作将非常有效。当应用程序进入后台并且队列正在提交时,我想做的是让队列继续提交,直到它尝试提交所有队列

队列提交的方法是:

-(void)submitAll {
    dispatch_async( dispatch_get_global_queue(DISPTACH_PRIOROITY_DEFAULT,0) ^(void){
        self.submitting = TRUE;
        for ( id queueObject in theQueue ) {
             [self submitQueueObject:queueObject];
        }
        self.submitting = FALSE;
    });
}

当应用程序进入后台时,是否可以继续执行上述循环?

如果可以在大约10分钟内完成,则可以使用

UIApplication:beginBackgroundTaskWithExpirationHandler:

要在移出前台后继续执行

操作应在10分钟内完成,但我如何才能挂接到已在运行的循环中?您不需要挂接它,在前台工作的代码将继续工作,就像应用程序在后台时一样。想象一下beginBackgroundTaskWithExpirationHandler:就像请求在后台继续运行的权限一样。(它的名字意味着您实际上必须开始做某事,或者在调用它时要运行特定的任务,但事实并非如此)。调用BeginBackgroundTaskWithExpirationHandler:每当您的应用程序处于活动状态时。