了解 iPhone 应用程序后台状态
Posted
技术标签:
【中文标题】了解 iPhone 应用程序后台状态【英文标题】:Understanding iPhone App Background States 【发布时间】:2013-03-23 16:34:37 【问题描述】:我有一个棘手的问题。在我的应用程序中,用户可以更改是否希望应用程序在后台运行。如果是 - 它应该工作,直到用户杀死它。如果不是 - 它应该在用户按下主页按钮之前工作,并且应该在使用顶部按钮锁定屏幕后工作。
因此,plist 文件中有一行名为“应用程序不在后台运行”。如果我让它“是” - 应用程序运行直到按下主页按钮,并且在锁定屏幕后仍然工作。完美的。如果我将其设为“否”-应用程序一直在运行,直到我将其杀死。完美。
但我猜你不能从应用程序更改 plist 值。好吧,我找到了一种使用 applicationDidEnterBackground 的方法:
if (userDontWantItRunInBackground) exit(0);
但是这样做有问题(除了苹果不推荐):
if "application does not run in background" = YES:
applicationDidEnterBackground is NOT CALLED on locking the screen
if "application does not run in background" = NO:
applicationDidEnterBackground is CALLED on locking the screen
没有意义!这不允许我让应用在锁定屏幕上运行!
【问题讨论】:
【参考方案1】:在 ios 4 中,如果您的应用愿意,您无法避免空闲时间睡眠。
[[UIApplication sharedApplication] setIdleTimerDisabled:YES];
以下是有关 iOS 后台执行的更多信息:
More:
【讨论】:
以上是关于了解 iPhone 应用程序后台状态的主要内容,如果未能解决你的问题,请参考以下文章
如何在后台保持 iphone ios websocket 连接处于活动状态?
当 Apple Watch 处于后台状态或睡眠模式时,我们如何从 iphone 向 Apple Watch 发送消息?