如何定期回拨Web服务

时间:2013-09-05 03:22:43

标签: ios web-services

我每隔45秒就要拨打一次我的网络服务。实际上我想要做的是,如果用户播放一首歌,用户就开始在我的应用程序中播放一些音乐,每45秒应用程序应该同样向网络服务发送“用户播放歌曲”。我对iOS线程一无所知。所以有人能告诉我我该怎么做?我需要做线程还是有其他方法可以做到这一点?

三江源

2 个答案:

答案 0 :(得分:2)

以下是一些可以帮助您的代码。

NSTimer设置viewDidLoad,每隔45秒运行一次,执行您的网络服务电话:

[NSTimer scheduledTimerWithTimeInterval:45.0
                                 target:self
                               selector:@selector(callService)
                               userInfo:nil
                                repeats:YES];

然后实现计时器中使用的选择器,在后台运行一些代码,如你所愿:

-(void)callService
{
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

       //Code in this part is run on a background thread, call your service here

   });
}

答案 1 :(得分:1)

您需要在后台线程上执行此操作。所以它不会影响用户界面。用户可以执行任何其他操作。为此,您可能需要使用NSTimerperformSelectorInBackground: withObject:。使用NSTimer您可以重复调用方法。从那个调用背景中的Web服务方法。 GCD也是一个更好的选择。