如何让iPhone功能在后台被周期性调用,在前台使用NSTimer



我使用的是[NSTimer scheduledTimerWithTimeInterval ...],当我的应用程序在前台时工作良好,但当我在后台它似乎不工作。

应该发生的事情是应用程序周期性地调用web服务,因此在模拟器中我可以看到它打印出通信。

我正在观察UIApplicationDidEnterBackgroundNotification事件,所以我可以改变模式,因为我似乎需要切换到可能设置几个预定的通知调用,但是当它们切换回我的应用程序时,我遇到了一个问题,因为我将在一段时间内调用服务两次,或者需要取消所有通知调用。

在模拟器中,当我将另一个程序带到前景时,我没有看到我要去applicationDidEnterBackground,这也是值得关注的,但更大的问题是我应该如何在前景或背景中定期调用该方法。

如果它有任何不同,我使用XCode 3和4.0 SDK。

我发现重新启动计算机后,应用程序确实转到applicationDidEnterBackground

但是,为了使我的webservice调用,我必须在后台同步调用,因为异步调用似乎只是无声地失败。我正在使用ASIHttpRequest (http://allseeing-i.com/ASIHTTPRequest/)。

由于NSTimer在后台不工作,我去使用NSThread,并使用了一个任务,我可以设置它应该睡眠多长时间的时间。我相信这是在主线程上完成的,这似乎不是问题,因为应用程序是在后台。

为了这一切的工作,我不得不把location在信息。

相关内容

最新更新