我正在为iOS开发一个必须使用现有服务器API的聊天应用。它的工作方式非常简单:应用程序检查每个给定的时间间隔服务器上是否有新消息并显示它们,此外,它还会向服务器发送用户键入的新消息。
当用户启动“多任务处理”或按下主页按钮时,我的应用程序将转到后台,因此无法检查服务器是否有新消息。当达到某个超时时,服务器将自动假定用户已停止聊天。
通常,用户不知道当应用程序被置于后台时,它无法维持与服务器的连接并将停止聊天。我正在寻找一种方法,只要将应用程序放到后台就会通知用户此行为。
我目前的想法是在applicationWillResignActive
和/或applicationDidEnterBackground
被解雇时通知用户,但我不知道以何种方式。它能否以符合Apple指南的方式完成?
我知道最好的解决方案是软件的不同整体设计(例如,使用推送通知并且没有超时的服务器端聊天终止),但在这种情况下我无法改变
答案 0 :(得分:3)
我会继续在后台运行并设置expiration handler block
(当应用程序被真正杀死时由os调用)并且schedule a UILocalNotification
使用
- (UIBackgroundTaskIdentifier)beginBackgroundTaskWithExpirationHandler:(void (^)(void))handler