如何检测用户是否在iOS中离开我的应用程序?

问题描述 投票:0回答:1

我正在尝试开发一个有助于人们集中注意力的应用。本质上,用户将开始一个他们希望关注的会话。只要用户未打开其他应用程序(例如,用户无法打开Facebook),此会话就会持续。如果用户这样做,则会话被标记为失败。用户尝试使用尽可能长的时间。

我看到的问题是,一旦屏幕关闭,iOS不允许应用程序运行超过3分钟。这意味着用户可以开始会话,然后将电话放下3分钟或更长时间,然后在解锁电话时,他们会看到主屏幕。该应用程序已被杀死。然后,用户可以自由地漫游并查看其他任何应用程序,这违背了我的应用程序的目的。

我可以使用在服务器上运行的计时器来维持整个会话的持续时间,并在用户重新打开应用程序后恢复会话,但这不能解决用户能够在重新打开应用程序之前漫游的问题。

有什么方法可以解决iOS杀死我的应用程序的问题?我想要的行为是:1)用户开始会话。2)会话计时器开始。3)如果用户离开应用程序,会话将在30秒警告后终止。4)如果用户锁定电话,则应用仍会运行。5)用户解锁手机时,显示应用程序(不是主屏幕)。因此,终止逻辑是相同的。

谢谢!

ios swift
1个回答
0
投票

您可以使用观察者(将其添加到ViewController的viewDidLoad):

NotificationCenter.default.addObserver(self, selector: #selector(applicationWillResignActive(notification:)), name: UIApplication.willResignActiveNotification, object: nil)

该函数将如下所示:

@objc func applicationWillResignActive(notification: NSNotification) {
    // do something
}
© www.soinside.com 2019 - 2024. All rights reserved.