此问题是我earlier question的扩展/替代(未收到任何回复)。我没有尝试实现推送通知,而是定期轮询服务器。但是这种民意调查需要持续超过分配给后台任务的10分钟。
在iOS中是否有类似定时任务(想想cron-jobs / daemons)?
我能想到的另一种扭曲的方式是,如果我在我的应用程序中集成twitter框架并让我的服务器发送直接消息,它会唤醒我的应用程序吗?我知道这听起来很蹩脚,因为如果通知被重新调整,iOS将如何知道向哪个应用程序发送通知...
感谢并期待一些回复:)
答案 0 :(得分:0)
为什么不反对使用推送通知来执行任何操作? Urban Airship似乎允许每月在其基本计划上免费发送1000000条推送消息。
无论如何,我想不出任何其他方式。
答案 1 :(得分:0)
你想要达到的目标很可能是“不”,但我当时确实做了一些非常糟糕的事情,所以这可能会或者可能不适合你(不能保证):
当应用收到通知时,会触发应用委托的applicationDidLoad()方法,通知对象存储在“launchOptions”参数中。
在此方法中,您可以执行一项操作来轮询您的服务器。
所以我想的是,设置一个本地通知,在你想要的日期开火。本地通知就像推送通知,即使您的应用程序被终止(从后台进程中终止),它们也可以执行
然后在你的app delegate的didFinishLaunchingOptions()中,你可以查看它是否是匹配的通知,如果是,则执行你的欲望服务器轮询逻辑,否则忽略。
注意:如果您的服务器轮询逻辑位于另一个视图控制器中,请确实在实际单击选项卡查看它们之前,实际上可能无法启动这些视图控制器。现在因为您的应用已终止且未运行,您显然无法点按标签。
第二个hack是调用包含服务器轮询逻辑的视图控制器的getter“view”方法,例如:
// force iOS to initialize the view controller
[MyCustomVC view];
如你所见,非常黑客,不推荐。