在AppDelegate文件中,由于锁屏和Home键两种操作,我们接到的事件是一样的,
但有时候业务需要我们区分这两个事件,这里我们就介绍一个方法,锁屏事件和Home键事件在App接到的回调方法是一样的,我们无法区分。不过有一个很明显的特征我们还是可以利用的:锁屏时设备屏幕亮度为0。
具体检测代码如下:
1 | - (void)applicationWillResignActive:(UIApplication *)application { |
但是App进入前台的时候无论是按锁屏键还是按home键,检测到屏幕亮度都不为0,就不能再通过屏幕亮度来判断状态了。
好在我们进后台的时候记录了是锁屏还是Home键的事件,回来的时候肯定是成对的(也有特殊情况,用户在锁屏界面进入其他App,然后按home键,这时候我们的应用就是处于后台运行,下次进入是点击图标或者双击Home键从多任务管理进入)。
一个小功能坑也不少,所以还是做好立项前的评估吧^_^