编辑:正如lxt所澄清的:“使用推送通知作为轮询webservice的提示是否合适” - 答案是有点。
我想象的示例是一个小部件库存管理器,具有流入表视图的“进货”库存和用户将库存拖放到详细视图中的“库存存储箱”。
就像这样:
注意:我的应用程序不需要在后台保持更新。它可以愉快地休眠,直到再次启动;此时,它需要使用最新的数据更新自己。Kyle提供了一个解决方案来解决这个特定问题,使用applicationWillEnterForeground:
为了在不过度使用webservice服务器的情况下实现这一点,我想象了一个解决方案,将webservice轮询和PUSH通知结合起来,以在一个用户(iPad)对数据进行任何更改时触发轮询。因此,流程如下:
无论用户执行任何操作,"默认"的webservice轮询都会每分钟触发一次。
当用户将库存项目从tableview拖放到存储箱中时,会向登录到同一总账户的任何其他iPad发送PUSH通知,并触发webservice轮询以刷新其数据。
简而言之:每当iPad "A"上的用户更改任何内容时,都会向iPad "B"、iPad "C"等发送PUSH通知。当B、C、D等接收到PUSH通知时,它们会轮询服务器以刷新其数据。
替代方案是让账户中的每个iPad每15秒触发一次webservice轮询;这对带宽来说似乎很昂贵(而且通常不会更改数据)。我的问题不是“我该如何做到...?”而是“我应该如何做到...?”。我意识到StackOverflow可能会认为这有点“主观”,但考虑到我已经花了两天时间研究这个特定的实践(使用PUSH通知来触发webservice轮询),却找不到任何相关文章,所以我认为这是一个非常有价值的问题。
感谢您抽出时间阅读此内容。任何帮助都将不胜感激。示例代码和/或具体的框架/套件信息将不胜感激。但现在我只需要知道这是否是一个好主意。