flutter代码中使用Android/ios原生生命周期
如果你是从原生开发转flutter的,使用flutter开发的时候,有没有遇到一些操作是让人疑惑的,例如原生的生命周期为什么在flutter里面没有实现呢。
其实flutter有对应的app生命周期函数的,那就是WidgetsBindingObserver 在这个WidgetsBindingObserver的类里面有个didChangeAppLifecycleState函数,参数AppLifecycleState就是我们app的生命周期执行的过程。
首先看AppLifecycleState
- resumed 对应android的onResume,ios的applicationDidBecomeActive
- inactive 对应android的onPause, ios的applicationWillResignActive
- paused 对应android的onStop, ios的applicationDidEnterBackground
- detached 对应android的onDestroy ios的applicationWillTerminate
其实以上的四个生命周期函数理论上也是够用的。
对比原生来说,是不是少了几个生命周期函数,如果有些复杂的业务,我们需要用到复杂的生命周期函数怎么办,在这里其实也有很多flutter pub的插件封装,我们可以直接使用。
例如 app_life 这个插件 点击查看
需要向flutter下面的原生类里面注册需要的生命周期函数
- android
- ios
接下来就是在自己需要使用原生生命周期的页面 with LifeManageCall类,
在 initState函数使用LifeManage.instance!.addObserver(this);注册插件即可。
@override
void initState() {
super.initState();
LifeManage.instance!.addObserver(this);
}
android和ios原生生命周期函数都有实现,效果跟原生开发是一致的。
flutter代码中使用Android/ios原生生命周期相关推荐
- ae制h5文字动画_大杀器Bodymovin和Lottie:把AE动画转换成HTML5/Android/iOS原生动画
前段时间听部门老大说,Airbnb出了个移动端的动画库Lottie,可以和一个名叫Bodymovin的AE插件结合起来,把在AE上做好的动画导出为json文件,然后以Android/iOS原生动画的形 ...
- android 2048 动画,大杀器Bodymovin和Lottie:把AE动画转换成HTML5/Android/iOS原生动画
前段时间听部门老大说,Airbnb出了个移动端的动画库Lottie,可以和一个名叫Bodymovin的AE插件结合起来,把在AE上做好的动画导出为json文件,然后以Android/iOS原生动画的形 ...
- android中应用程序生命周期,Android应用程序生命周期中的活动和图标
面向大众的移动技术,第3部分 为您的Android移动应用程序添加导航样式 安德鲁·格洛弗 2013年7月25日发布 面向大众的移动技术 请期待本系列的后续内容. 请期待本系列的后续内容. 近年来,移 ...
- Android 广播的生命周期
一:Android 广播的生命周期 一个广播接收者有一个回调方法:void onReceive(Context curContext, Intent broadcastMsg).当一 ...
- Android笔记 activity生命周期 Tasks and back stack回退栈
正常打开一个应用,先后调用Activity的onCreate.onStart.onResume 正常退出一个应用,先后调用Activity的onPause.onStop.onDestroy(进程被杀死 ...
- HOME键窥探Android的Activity生命周期
HOME键窥探Android的Activity生命周期 好久没有写技术博客了,前两篇博客写的都是一些自己的所见所闻和心里感受,今天说一说Android中的Activity的生命周期,此篇文章使用HOM ...
- 深入理解 Android Activity的生命周期
深入理解 Android Activity的生命周期 2010-10-13 14:08:29| 分类: Android | 标签:周期 调用 activity android protec ...
- Pittkai——Android折叠屏生命周期
Android折叠屏生命周期 (第一次在CSDN上写文章,随便写写,记录一下) 如今随着手机的发展,屏幕从分屏甚至走上了折叠屏的道路,即将推出的谷歌Android Q系统更是支持了折叠屏,但苦于手头没 ...
- [react] react中修改prop引发的生命周期有哪几个?
[react] react中修改prop引发的生命周期有哪几个? static getDerivedStateFromPropsshouldComponentUpdaterendergetSnapsh ...
- 【Android笔记】Android MediaPlayer的生命周期
Android MediaPlayer的生命周期 MediaPlayer的状态转换图也表征了它的生命周期,搞清楚这个图可以帮助我们在使用
最新文章
- 项目四-用循环求(1)
- 【EventBus】事件通信框架 ( 取消注册 | 获取事件参数类型 | 根据事件类型获取订阅者 | 移除相关订阅者 )
- python定义字符串1hdhdjdjd_python基础总结(字符串)
- python列表实现原理_Python动态类型实现原理及过程解析
- 【数学与算法】支持向量机、线性判别 详细数学原理
- 1.6 Java字节流的使用:字节输入/输出流、文件输入/输出流、字节数组输入/输出流
- 产品经理如何开始数据分析之路?(基础知识)
- 自定义View时,用到Paint Canvas的一些温故,讲讲平时一些效果是怎么画的(基础篇 一)...
- centos安装下载桌面
- 汽车辐射监测系统-Qt开发
- Django学习知识点、路线图、资料总结大全,建议收藏!
- 一文了解人工智能——学科介绍、发展史、三大学派
- mave工程dependencyManagement与dependencies区别
- 数据结构学习之基数排序(含C++代码)
- word添加参考文献和标注的方法
- 什么是HTTP代理?HTTP代理的作用
- 「开源」快速接入微信微博QQ钉钉登录分享
- 面试官:说一下Redis和MongoDB的区别?
- 第十三课 类族结构的进化
- 基于arduino的5路循迹小车(1)
热门文章
- BIOS里的 CSM 是什么意思?
- c语言卡诺图算法实现,多变量卡诺图化简的算法实现.pdf
- java idisposable_IDisposable实现 - 'if (disposing)'应该怎么做
- 莱昂哈德·欧拉生平及其成就简介
- maya python window_安装了Anaconda之后,Maya运行报错,Python 找不到 Maya 的 Python 模块...
- 基于cropper.js封装vue在线图片裁剪组件
- Error: Some file crunching failed
- App下载的视频导进电脑中生成.mp4文件的方法
- Python杨辉三角形
- 麻省理工学院计算机科学与工程博士,2020美国麻省理工大学计算机科学博士专排...