Iphone iOS聊天应用程序:如果用户离开应用程序,我如何通知用户应用程序将不再运行?

Iphone iOS聊天应用程序:如果用户离开应用程序,我如何通知用户应用程序将不再运行?,iphone,ios,chat,Iphone,Ios,Chat,我正在为iOS开发一个聊天应用程序,它必须使用现有的服务器API。它的工作方式非常简单:应用程序每隔一段时间检查服务器上是否有新消息,并显示它们,此外,它还向服务器发送用户键入的新消息 当用户启动“多任务”或按下“主页”按钮时,我的应用程序将转到后台,因此无法检查服务器是否有新消息。服务器将自动假定用户在达到某个超时时停止了聊天 通常,用户没有意识到,当应用程序被放到后台时,它无法保持与服务器的连接,并将停止聊天。我正在寻找一种方法,一旦应用程序被放到后台,就会通知用户这种行为 我目前的想法是在

我正在为iOS开发一个聊天应用程序,它必须使用现有的服务器API。它的工作方式非常简单:应用程序每隔一段时间检查服务器上是否有新消息,并显示它们,此外,它还向服务器发送用户键入的新消息

当用户启动“多任务”或按下“主页”按钮时,我的应用程序将转到后台,因此无法检查服务器是否有新消息。服务器将自动假定用户在达到某个超时时停止了聊天

通常,用户没有意识到,当应用程序被放到后台时,它无法保持与服务器的连接,并将停止聊天。我正在寻找一种方法,一旦应用程序被放到后台,就会通知用户这种行为

我目前的想法是在
applicationwillresignative
和/或
applicationidentinterbackground
被触发时通知用户,但我不知道以何种方式触发。它能以符合苹果公司指导方针的方式完成吗


我知道,最好的解决方案是采用不同的软件总体设计(例如,使用推送通知,并且不会因超时而终止服务器端聊天),但在这种情况下,我无法改变这一点。

我将继续在后台运行,并设置
过期处理程序块
(当你的应用程序真的被终止时由操作系统调用)并在那里
安排UILocalNotification

使用


-(UIBackgroundTaskIdentifier)beginBackgroundTaskWithExpirationHandler:(void(^)(void))handler
我将继续在后台运行,并设置一个
过期处理程序块(当你的应用程序真的被杀死时由操作系统调用),然后在那里
安排UILocalNotification

使用


-(UIBackgroundTaskIdentifier)beginBackgroundTaskWithExpirationHandler:(void(^)(void))handler

当用户按下iphone home按钮时,您能否通过
ApplicationIdentinterBackground
向用户显示一个
UIAlert
?否。按下home键后,除了UILocalNotification之外,无法执行任何类似Alert的操作:)当用户按下iphone home按钮时,您不能通过
applicationIdentinterbackground
向用户显示一个
UIAlert
吗?否。按下home键后,除了UILocalNotification之外,无法执行任何类似Alert的操作:)您可以使用后台任务在后台运行近十分钟。您可以使用它来保持连接处于活动状态,然后在过期处理程序中,您可以使用本地通知让用户知道他们由于不活动而注销。@AmyWorrall::yes。。100%我写的^^我们用同样的方法做,顺便说一句,并得到更多的时间。我只是想澄清一下,通过使用这种方法,你得到了什么——这就是为什么我发表了一条评论,而不是一个新的答案:)你可以使用后台任务在后台运行近十分钟。您可以使用它来保持连接处于活动状态,然后在过期处理程序中,您可以使用本地通知让用户知道他们由于不活动而注销。@AmyWorrall::yes。。100%我写的^^我们用同样的方式做,顺便说一句,我们得到了更多的时间。我只是想澄清使用这种方法得到了什么——这就是为什么我发表了评论而不是新的答案:)