如何检查消息是不是在后台与应用程序挂起

Posted

技术标签:

【中文标题】如何检查消息是不是在后台与应用程序挂起【英文标题】:How to check if message is pending with app in background如何检查消息是否在后台与应用程序挂起 【发布时间】:2013-10-08 21:22:21 【问题描述】:

我正在构建一个非常简单的信使应用程序,只是为了让我对这种类型的应用程序感兴趣。我想出的一般想法是:客户端 1 键入消息,发送到客户端 2。消息发送到我的 tcp/http 服务器,然后将消息发送到客户端 2。但是我不确定最后一步是如何发生的。

服务器如何定位手机并将消息推送给它?应用程序是否应该每隔几秒检查一次是否有消息在等待?如果应用被暂停(后台),你会怎么做?

这是否符合 UIBackgroundModes 下的后台提取条件?

The app regularly downloads and processes small
amounts of content from the network.

【问题讨论】:

【参考方案1】:

您可以使用苹果的 APN(苹果推送通知)进行远程推送通知。本质上,一旦服务器接收到 http/tcp 消息,它必须通过苹果的 apn 服务器向设备 2 发送推送通知。更多资讯here

【讨论】:

但这并不能保证消息会到达那里...而且我不确定您是否可以使用此数量的 APN。 whatsapp是怎么做到的? 是的,不能保证。但这是您可以将消息推送到客户端的唯一方法。从 ios 7 开始,还有一种更新的替代方案。该应用程序可以定期从网络下载和处理少量内容。启用 Background Modes 选项会将 UIBackgroundModes 键添加到应用程序的 Info.plist 文件中。更多here 重新阅读您编辑的问题。您可以这样做,也可以通过远程通知唤醒您的应用。我知道这不能保证,但这里有一个关于 apn reliability 的精彩帖子

以上是关于如何检查消息是不是在后台与应用程序挂起的主要内容,如果未能解决你的问题,请参考以下文章

linux 挂起进程

linux系统中挂起操作和强制结束操作(后台运行程序方法)

如何检查系统是不是处于待机模式?

即使应用程序处于挂起状态,如何在 ios 中运行后台服务

Rails:后台文件上传如何工作?

如何在应用程序运行 ios 时在后台进行服务调用