APP生命周期

APP生命周期

线程有状态的变化,app也有,下面我们先看看应用的几个状态

一、应用的状态

1、app的状态

  • Not running:app未运行的状态;

  • Inactive:app处于前台,但是没有接收事件

  • Active:app处于前台,开始接收事件

  • Background:app运行在后台,但是正在处理相关后台逻辑

  • Suspended:程序在后台不处理相关逻辑

app状态变化的时候,系统会以delegate或通知的方式通知我们,我们可以做出相应的处理,下面我们看一下app的delegate方法

2、app的delegate方法

(1)初始化的相关方法

  • app开始启动,Storyboards或者nib文件已经被加载,但是app状态还没有保存,此时处于inactive状态
- (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions

(2)Launch

  • app完成启动,状态已经保存,但是UI还没有创建,可以创建keyWindow
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
  • didFinishLaunchingWithOptions:或者app在打完电话等系统中断事件处理完毕再次进入前台将调用此方法
-(void)applicationWillEnterForegroud:(UIApplication *)application
  • 在applicationWiillEnterForeground之后调用,完成到前台的转换,可以处理UI或者运行时工作
-(void)applicationDidBecomeActive:(UIApplication *)application

​ 可以在这里展示widow(如果有需要)、改变当前展示的vc(如果有需要)\更新view的数据、状态等等;开启定时任务、更新相关状态等等

(3)Termination相关方法

  • 例如接听电话、按home键等,使app进入inactive时调用该方法
-(void)applicationWillResignActive:(UIApplication *)application

保存用户数据、暂停计时器、挂起dispatch或者operation 队列;不适合进行新的Metal 工作、OpenGL工作

  • app进入inactive之后会进入后台,此时这个方法被调用。有几秒保存app状态、处理清除工作
-(void)applicationDidEnterBackground:(UIApplication *)application

释放文件中读取的图片、媒体内容;释放占用内存的对象;释放摄像头、麦克风等硬件资源;隐藏alert等提示信息,隐藏用户敏感信息;完成Metal和OpenGL相关内容

  • 系统将释放app占用的内存时调用,可以保存数据、做一下清除工作
-(void)applicationWillTerminate:(UIAppliication *)application
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
uni-app生命周期函数包括应用生命周期函数和页面生命周期函数。 应用生命周期函数包括: - onLaunch:当uni-app初始化完成时触发,全局只触发一次。 - onShow:当uni-app启动,或从后台进入前台显示时触发。 - onHide:当uni-app从前台进入后台时触发。 - onError:当uni-app报错时触发。 页面生命周期函数包括: - onLoad:监听页面加载,其参数为上个页面传递的数据,参数类型为Object(用于页面传参)。 - onShow:监听页面显示。页面每次出现在屏幕上都会触发,包括从下级页面返回露出当前页面。 - onReady:监听页面初次渲染完成。 - onHide:监听页面隐藏。 - onUnload:监听页面卸载。 这些生命周期函数在不同的阶段会触发,可以在对应的函数中编写相应的逻辑代码。\[1\] \[2\] #### 引用[.reference_title] - *1* [uni-app —— uni-app生命周期](https://blog.csdn.net/Bonsoir777/article/details/127895952)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [uni-app 生命周期](https://blog.csdn.net/YWW_ABC/article/details/121720505)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员的修养

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值