ios - 如何知道/检测前台的应用程序何时会在 iOS 上转到后台
问题描述
我目前正在处理具有背景和前景的任务。当我的应用程序将进入后台时,我是否可以检测到我的应用程序?我已经从互联网上搜索并阅读了许多信息,但我没有得到我想要的。当我在互联网上搜索时,这一切都是关于“当应用程序移至后台时”,“当应用程序已经在后台时”,以及它已经在后台发生的事情。
到目前为止,我已经尝试过,UIApplicationWillResignActiveNotification
但是 willResignActive 并不意味着它会进入后台——这意味着它会处于非活动状态。(当我点击 Siri 时,以及当通知到来时,您的应用程序顶部的来电)。
我已经试过了,DidEnterBackground
但是你,它只在它已经处于后台模式时触发。
为什么我想知道这个答案?因为,我想在应用程序处于后台模式(而不是前台模式)时启用画中画模式。所以,我在前景模式下禁用画中画,然后在后台模式下启用它。我知道,通常苹果会在后台自动启用画中画,当用户单击画中画模式时。
我之所以要这样做是因为,如果用户总是必须启用画中画模式,那就太烦人了。所以,我认为如果我的应用程序处于后台模式时启用此功能,那将是“干净的”。
那么,我怎么知道我的应用程序是否会进入后台?我对任何建议持开放态度。
解决方案
只是一个想法...创建一个ivar,说inFront
和两个方法,如下
// Signals that app is going to the back
- ( void ) toBack
{
if ( self.inFront )
{
self.inFront = NO;
// stuff e.g. start PiP
}
}
// Signals that app is going to the front
- ( void ) toFront
{
if ( ! self.inFront )
{
self.inFront = YES;
// stuff e.g. stop PiP
}
}
问题是它没有你想要的那么干净。现在您需要找到将其连接到的地方,例如viewWillAppear
,viewWillDisappear
但您也可以将其连接到更多。您还可以添加更多逻辑,但想法是很好地打包它,然后您可以从不同的地方和不同的事件多次调用它们,希望它可以解决您的问题。
推荐阅读
- angular - 订阅管道检测到更改时执行代码
- python-3.x - 当 Scraping 得到带有“编码”部分的 html 时,是否有可能得到它
- mysql - 如何使用 node.js 将图像上传到 mysql
- function - 当数据以位为单位时,求解具有相互依赖的变量和函数的方程
- r - 代码(在 R 中)返回变量位置而不是值
- ruby - 如何删除散列中的数组
- text - RAML MimeType 用于文本/纯文本
- c++ - C++11:默认的默认构造函数会导致部分初始化的类吗?
- android - 膨胀类 android.support.constraint.ConstraintLayout 时出错
- bash - 你能帮我在 Slurm 中并行运行任务吗?