Android Activity的生命周期

一、Activity

一个Activity简单的来说就是我们看到的一个页面,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。

二、生命周期

Android系统是一个多任务(Multi-Task)的操作系统,可以在用手机听音乐的同时,也执行其他多个程序。每多执行一个应用程序,就会多耗费一些系统内存,当同时执行的程序过多,或是关闭的程序没有正确释放掉内存,系统就会觉得越来越慢,甚至不稳定。

为了解决这个问题, Android 引入了一个新的机制-- 生命周期(Life Cycle)。

下面这张图可以帮助我们理解生命周期


三、7个方法

onCreate()当Activity第一次被实例化的时候系统会调用,整个生命周期只调用1次这个方法。通常用于初始化设置,为Activity设置所要使用的布局文件,为按钮绑定监听器等静态的设置操作。

onStart()Activity可见未获得用户焦点不能交互时系统会调用。

onRestart()当Activity已经停止然后重新被启动时系统会调用。

onResume()Activity可见且获得用户焦点能交互时系统会调用。

onPause()用来存储持久数据。到这一步是可见但不可交互的,系统会停止动画等消耗CPU的事情。从上文的描述已经知道,应该在这里保存你的一些数据,因为这个时候你的程序的优先级降低,有可能被系统收回。

onStop()当Activity被新的Activity完全覆盖不可见时被系统调用。

onDestroy()当Activity(用户调用finish()系统由于内存不足)被系统销毁杀掉时系统调用,(整个生命周期只调用1次)用来释放onCreate()方法中创建的资源,如结束线程等。

了解以上方法在什么情况下执行,我们就可以根据自己的需要在不同的方法中写入我们需要的操作。

四、实例

我们写一个简单的程序进行一些操作可以证明:(在各个方法中加入对应的输出语句即可)

当Activity1启动时:   onCreate(1)     onStart(1)         onResume(1)

当Activity2启动时:   onPause(1)      onCreate(2)      onStart(2)         onResume(2)    onStop(1)

当返回到Activity1时:onPause(2)      onRestart(1)     onStart(1)         onResume(1)    onStop(2)    onDestroy(2)


注意:

1.当我们直接按home键返回主菜单时,我们发现我们的Activity实际上并没有被销毁,只是执行了onStop方法

2.当我们从当前的Activity按退出键一步一步返回主菜单时,Activity会被销毁

3.当我们从当前全屏Activity打开一个非全屏的Activity时原来的Activity只是执行了onPause方法并不会执行onStop方法,而当我们再回到原来Activity时,非全屏Activity会先执行onPause,而原来的全屏Activity执行onRestart onResume,然后非全屏Activity执行 onStop onDestroy



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值