App生命周期




图来源于官方。


Inactive:The app is running in the foreground but is currently not receiving events.  An app usually stays in this state only briefly as it transitions to a different state.


BackgroundMost apps enter this state briefly on their way to being suspended.









对应的几个状态函数分别是:


application:willFinishLaunchingWithOptions:

application:didFinishLaunchingWithOptions:一般的初始化工作安排在这。

applicationDidBecomeActive:

applicationWillResignActive:

applicationDidEnterBackground: Use this method to release shared resources, invalidate timers, and store enough app state information to restore your app to its current state in case it is terminated later.

applicationWillEnterForeground: This method is called as part of the transition from the background to the active state.The call to this method is invariably followed by a call to the applicationDidBecomeActive: method.

 applicationWillTerminate:This method is not called if your app is suspended运行在Background状态时这个delegate才会被调用。处在suspended状态的app在系统内存不足时会直接被系统回收。




### 应用程序生命周期各阶段详解 #### 微信小程序生命周期 微信小程序的应用生命周期涵盖了从启动到关闭的全过程,开发者可以通过监听这些生命周期事件来实现资源管理和功能优化。以下是微信小程序的主要生命周期阶段及其对应的函数: 1. **应用初始化 (App Launch)** 当用户打开小程序时会触发 `onLaunch` 函数。此阶段主要用于全局变量初始化以及加载必要的数据[^1]。 2. **页面显示 (Page Show)** 用户进入某个具体页面时会触发 `onShow` 方法。该方法适用于处理页面重新展示的情况,比如从前台切换至后台再返回前台的情形。 3. **页面隐藏 (Page Hide)** 如果当前页面被遮挡或者跳转到了其他页面,则会调用 `onHide` 方法。这一步骤通常用来保存临时状态或停止某些耗电行为,例如暂停音频播放。 4. **应用卸载 (App Unload)** 小程序即将退出前会执行 `onUnload` 操作。这是清理工作的好时机,例如释放网络连接、存储未完成的数据等。 #### Vue.js 生命周期 Vue框架中的组件也遵循类似的生命周期模式,但更加细化于单个组件的行为控制上。下面列举了一些重要的Vue生命周期钩子并解释它们的作用: 1. **创建期 (Creation Phase):** - `beforeCreate`: 实例刚被创建出来之后立即调用,在这个阶段还无法访问DOM节点和data属性。 - `created`: 此时已经完成了响应式系统的设置,可以安全地操作data对象和其他选项配置[^2]。 2. **挂载期 (Mounting Phase):** - `beforeMount`: 组件模板编译成虚拟dom之前调用。 - `mounted`: 虚拟dom渲染完成后插入真实dom树中,此时可直接操纵真实的dom结构。 3. **更新期 (Updating Phase):** - `beforeUpdate`: 数据变更引起视图重绘之前的回调。 - `updated`: dom更新完毕后的动作集合点,注意这里可能会遇到一些异步问题所以要谨慎使用。 4. **销毁期 (Destruction Phase):** - `beforeDestroy`: 即将摧毁实例前最后的机会做些事情,像解绑自定义事件监听器之类的任务。 - `destroyed`: 所有绑定都已解除,所有的子组件也都已被销毁,最终结束整个流程。 通过合理利用上述各个周期内的特性,能够极大程度提高开发效率的同时保障良好的用户体验质量。 ```javascript // 示例代码:Vue组件基本生命周期演示 new Vue({ el: '#app', data() { return { message: 'Hello, world!' }; }, beforeCreate() { console.log('Before Create:', this.$el); // undefined }, created() { console.log('Created:', this.message); }, beforeMount() { console.log('Before Mount:'); }, mounted() { console.log('Mounted:', document.getElementById('output').textContent); } }); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值