Android之旅--Activity生命周期

      任何对象都有生命周期,activity也不例外。在activity的生命周期中总共包含了7个方法,从官方的SDK Docs里面的activity解释里面我们可以找到下面这张图:

activity_lifecycle

下面我们就来详细说说这几个方法。

OnCreate()。当一个activity启动后首先调用的就是这个方法,在这个方法中一般初始化一些控件啊,资源啊,绑定数据等等工作。

Onstart()。当第一次对用户可见的时候执行该方法(有点类似于winform的onShown方法)。

OnResume ()。能够获得用户焦点的时候执行该方法。

OnPause()。启动另外一个Activity方法后,执行该方法。

Onstop()。当前Activity不可见(被其他activity完全遮挡住)后执行该方法。注意不是销毁,如果其他activity调用这个activity时则是执行OnRestart()方法而不是重新start()。

OnRestart()。activity在没有销毁的情况下重新显示。

OnDestroy()。被销毁时调用。何时会被销毁?1.手动调用Finish()方法时;2.系统资源不足时自动销毁

 

 

最后再来说一下task:什么是Task?当我们同时启动多个activity的时候,这个多个activity就是以栈的形式存放在task中。界面显示的Activity永远是在栈顶的那个activity。显示一个activity就是压入task栈中,back则是出栈。

都是些原理性的东西也不怎么好演示,知道这个意思就行了。重要的还是掌握前面的那七个方法,知道什么时候会被调用以便处理程序逻辑。

posted @   qianlifeng  阅读(800)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
点击右上角即可分享
微信分享提示