我有一个棘手的问题。在我的应用程序中,用户可以更改是否希望应用程序在后台运行。如果是 - 它应该工作,直到用户杀死它。如果不是 - 它应该在用户按下主页按钮之前工作,并且应该在使用顶部按钮锁定屏幕后工作。
因此,plist 文件中有一行名为“应用程序不在后台运行”。如果我让它“是” - 应用程序运行直到按下主页按钮,并且在锁定屏幕后仍然工作。完美的。如果我将其设为“否”-应用程序一直在运行,直到我将其杀死。完美的。
但我猜你不能从应用程序更改 plist 值。好吧,我找到了一种使用 applicationDidEnterBackground 的方法:
if (userDontWantItRunInBackground) { exit(0); }
但这有一个问题(Apple不推荐除外):
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
这没有道理!这不允许我让应用程序在锁定屏幕上运行!