Objective c 后台工作应用程序的设计模式

Objective c 后台工作应用程序的设计模式,objective-c,ios5,background-process,cocoa-design-patterns,Objective C,Ios5,Background Process,Cocoa Design Patterns,我已经创建了一个web服务应用程序,我想根据我在主线程中获取的响应(通过GET)填充我的视图控制器。但是我想创建一个定时计时器,它将运行并控制我的服务器,如果出现任何差异(比如说,如果数组的计数发生了变化),我将创建一个本地通知。就我从这里读到的和一些谷歌搜索结果来看,除了一些特殊情况(音频、VOIP、GPS),我不能在后台运行我的应用程序超过十分钟。。但是我需要至少每分钟控制一个服务器。。谁能提供一些想法或链接请 编辑 我不会在商店里销售应用程序,只是为了局域网。比方说,我将从服务器向用户发送

我已经创建了一个web服务应用程序,我想根据我在主线程中获取的响应(通过GET)填充我的视图控制器。但是我想创建一个定时计时器,它将运行并控制我的服务器,如果出现任何差异(比如说,如果数组的计数发生了变化),我将创建一个本地通知。就我从这里读到的和一些谷歌搜索结果来看,除了一些特殊情况(音频、VOIP、GPS),我不能在后台运行我的应用程序超过十分钟。。但是我需要至少每分钟控制一个服务器。。谁能提供一些想法或链接请

编辑

我不会在商店里销售应用程序,只是为了局域网。比方说,我将从服务器向用户发送一些文本消息,如果出现新消息,消息数组的计数将增加,在这种情况下,我将创建一个通知。我需要让这个“控制”路由永远保持活力,无论是在前台还是后台。GCD提供了这样的解决方案吗?有人知道吗?

注意:“[…]我在主线程中获取(通过GET)。”这不是一个好方法。永远不要在主线程上获取任何网络资源。为什么?因为由主线程维护的GUI在获取不是即时的情况下将变得无响应。网络上的任何延迟峰值都会导致不理想的用户体验

回答:除了列出的特殊情况外,您不能运行后台应用程序。在我看来:

  • 不要将应用程序置于后台。(糟糕的解决方案)
  • 尝试在应用程序和“服务器”之间放置另一个“实体”。我不知道为什么您“需要至少每分钟控制一个服务器”,但也许您可以将此“控制”委托给设备外的另一个进程

注意:“[…]我在主线程中获取(通过GET)”这不是一个好方法。永远不要在主线程上获取任何网络资源。为什么?因为由主线程维护的GUI在获取不是即时的情况下将变得无响应。网络上的任何延迟峰值都会导致不理想的用户体验

回答:除了列出的特殊情况外,您不能运行后台应用程序。在我看来:

  • 不要将应用程序置于后台。(糟糕的解决方案)
  • 尝试在应用程序和“服务器”之间放置另一个“实体”。我不知道为什么您“需要至少每分钟控制一个服务器”,但也许您可以将此“控制”委托给设备外的另一个进程


只需在后台循环播放静音音频文件,或者在后台ping用户的位置。是的,这会消耗一点电池电量,但对于家庭应用来说,这是一个简单的破解。只需记住在
Info.plist
中启用背景类型

只需在后台循环播放静音音频文件,或在后台ping用户的位置即可。是的,这会消耗一点电池电量,但对于家庭应用来说,这是一个简单的破解。只需记住在
Info.plist
中启用背景类型

我不会在商店里销售应用程序,只是为了局域网。比方说,我将从服务器向用户发送一些文本消息,如果出现新消息,消息数组的计数将增加,在这种情况下,我将创建一个通知。我需要让这个“控制”路由永远保持活力,无论是在前台还是后台。GCD会提供这样的解决方案吗?你有什么想法吗?我不会在商店里销售应用程序,只是为了局域网。比方说,我将从服务器向用户发送一些文本消息,如果出现新消息,消息数组的计数将增加,在这种情况下,我将创建一个通知。我需要让这个“控制”路由永远保持活力,无论是在前台还是后台。GCD提供了这样的解决方案吗?你有什么想法吗?如果你有一些示例代码或教程,你可以分享吗?如果没有,我无论如何都会尝试:)谢谢,我对编程不是很有经验,所以我要了教程:)但是我想我会很容易抓住它的,如果你有一些示例代码或教程,你能分享一下吗?如果没有,我无论如何都会尝试:)谢谢,我对编程不是很有经验,所以我要求提供教程:)但我想我会很容易地抓住它
iOS app  ->  some form of proxy server -> server which requires
                                          "babysitting" every minute.