这个问题是我的earlier question的扩展/替代(它没有收到任何响应)。我可以定期轮询服务器,而不是尝试实现推送通知。但是这个轮询需要在分配给后台任务的10分钟之后继续。
iOS中有没有像定时任务这样的东西(想想cron-job/守护进程)?
我能想到的另一种扭曲的方式是,如果我将twitter框架集成到我的应用程序中,并让我的服务器直接发送消息,它会唤醒我的应用程序吗?我知道这听起来真的很糟糕,因为如果通知被记录下来,iOS如何知道将通知发送到哪个应用程序……
感谢并期待一些回复:)
发布于 2012-10-25 12:26:55
你为什么反对使用推送通知呢?Urban Airship的基本套餐似乎允许每月免费发送1000000条推送消息。
不管怎么说,我想不出别的办法了。
发布于 2012-10-25 13:09:55
你想要实现的很可能是一个“不”,但我当时确实做了一些相当黑客的事情,所以这可能对你也可能不起作用(不能保证):
当应用程序收到通知时,它会触发应用程序委托的applicationDidLoad()方法,通知对象存储在"launchOptions“参数中。
在此方法中,您可以执行操作来轮询您的服务器。
所以我的想法是,设置一个本地通知,在你想要的日期触发。本地通知就像推送通知一样,即使你的应用被终止(后台进程终止),它们也可以执行
然后在你的应用代理的didFinishLaunchingOptions()中,你可以检查它是否是匹配的通知,如果是,那么执行你想要的服务器轮询逻辑,否则忽略。
注意:如果您的服务器轮询逻辑在另一个视图控制器中,请务必意识到这些视图控制器实际上可能不会被启动,直到您实际单击选项卡才能查看它们。现在,因为你的应用被终止了,并且没有运行,你显然不能点击标签。
第二个技巧是调用包含服务器轮询逻辑的视图控制器的getter " view“方法,例如:
// force iOS to initialize the view controller
[MyCustomVC view];如你所见,这是非常黑客的,不推荐使用。
https://stackoverflow.com/questions/13061517
复制相似问题