我想创建一个iPhone应用程序,它将在每个特定时间间隔后从Web服务器提取数据。即使applilcation正在后台运行。
我尝试在每个相关时间间隔后获取数据。但是当应用程序进入后台时。 NStimer无法为此事件做好准备。我不能打电话给网络服务。
我还可以使用以下代码 Grand Central Dispatch(GCD)来调用Web服务
NSTimeInterval delay_in_seconds = 3.0;
dispatch_time_t delay = dispatch_time(DISPATCH_TIME_NOW, delay_in_seconds * NSEC_PER_SEC);
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_after(delay, queue, ^{
// perform your background tasks here. It's a block, so variables available in the calling method can be referenced here.
// now dispatch a new block on the main thread, to update our UI
dispatch_async(dispatch_get_main_queue(), ^{
[self setBackgoundProcess];
});
});
但我仍然无法获取数据。当应用程序进入后台时,它无法正常工作。
是否有任何乳清在iPhone背景下调用Web服务
提前致谢。
答案 0 :(得分:0)
查看此iOS App Programming Guide,后台执行和多任务部分。基本上,您可以指定您的应用程序需要在后台运行(它将运行直到iOS在低内存中杀死它)或者您可以指定在应用程序进入后台时需要执行有限任务(猜测第一种情况)更符合您的需求)