iOS关于applicationWillResignActive

27 篇文章 0 订阅
15 篇文章 0 订阅

iOS关于applicationWillResignActive

背景:杀死app进程后点击推送打开app本应该进入相应页面,但却因为Face ID验证,无法跳转。

一、什么时候调用applicationWillResignActive?

  1. 屏幕锁屏
  2. 从前台进入后台
  3. 来电、短信弹窗
  4. Face ID或Touch ID验证

特注:指纹识别、面容识别的弹窗的级别非常之高,高到离谱,经过验证应用程序内部没有比指纹识别的window的级别更高的UIWindowLevel,也就说了他是系统级的弹窗。需要注意的是,如果指纹弹窗显示和消失应用程序会调用:

  - (void)applicationWillResignActive:(UIApplication *)application;
  - (void)applicationDidBecomeActive:(UIApplication *)application;

二、applicationWillResignActive中一般执行那些操作呢?

  1. 清理临时数据
  2. 暂停正在进行的任务
  3. 禁用计时器
  4. 限制OpenGL ES帧速率
  5. 游戏应该使用这种方法来暂停游戏。

三、如果在进行Face ID或者Touch ID验证时不想执行applicationWillResignActive中的操作怎么办?

可以转到applicationDidEnterBackground中执行相关操作,这个函数不会因Face ID或者Touch ID弹窗验证而执行,他只会在应用真正进入到后台的时候才会调用,可以避免清理掉一些关键信息导致app出现bug。

四、app前后台切换时执行函数顺序

//首次运行:
 
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
 
- (void)applicationDidBecomeActive:(UIApplication *)application
 
//首次关闭(home):
 
- (void)applicationWillResignActive:(UIApplication *)application
 
- (void)applicationDidEnterBackground:(UIApplication *)application

 //再次运行:
 
- (void)applicationWillEnterForeground:(UIApplication *)application
 
- (void)applicationDidBecomeActive:(UIApplication *)application
 
//再次关闭:
 
- (void)applicationWillResignActive:(UIApplication *)application
 
- (void)applicationDidEnterBackground:(UIApplication *)application

五、如何模拟app被杀死后再启动的状态?

xcode点击左上角要运行的项目图标->点击edit Scheme->Wait for executable to be launched
在这里插入图片描述
在这里插入图片描述
这样的话,app就会等你唤醒才会打开,可以选择widget唤醒、点击推送唤醒等等方式打开app,以达到杀死app后再打开的监控。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值