Activity介绍
在应用程序中,activity通常是一个单独的屏幕,提供了和用户交互的可视化界面,是用户可以做的一个单一的、重点突出的事情,几乎所有的活动都与用户进行交互。用于处理UI相关业务,比如加载页面、监听用户操作事件。
Activity生命周期
图片来自网络Activity方法介绍
- onCreate()方法执行后Activity被创建,方法只会执行一次,可以在里面初始化各控件、设置监听、并初始化一些全局的变量。例如:setContentView设置布局
- onStart()方法执行,Activity可见但不在前台,不可交互。
- onResume()执行Activity页面在前台显示,可以实现用户界面交互。
- onPause()暂停,Activity进入后台或跳转到另一个Activity是执行,但是此时Activity在前台并可见。我们可以进行一些轻量级的存储数据和去初始化的工作,不能太耗时。例如:程序状态的保存、独占设备和动画的关闭等。
- onStop()执行后,此时Activity已经不可见了,但是Activity对象还在内存中,没有被销毁。这个阶段的主要工作也是做一些资源的回收工作。
- onRestart()重新开始,Activity在这时可见,当用户按Home键切换到桌面后又切回来或者从后一个Activity切回前一个Activity就会触发这个方法。这里一般不做什么操作。
- onDestroy()这个阶段Activity被销毁,不可见,我们可以将还没释放的资源释放,以及进行一些回收工作。
Activity特殊方法
-
onSaveInstanceState() 触发:当应用遇到意外情况(如:内存不足、用户直接按Home键、横竖屏切换、关闭屏幕显示、启动一个新的Activity)由系统销毁一个Activity时,onSaveInstanceState() 会在activity被杀死前被调用即onPause()或onStop()方法之前。但是当用户主动去销毁一个Activity时,例如在应用中按返回键,onSaveInstanceState()就不会被调用。onSaveInstanceState()只适合用于保存一些临时性的状态,onPause适合用于数据持久化。
-
onRestoreInstanceState是在onStart之后、onResume之前调用的。用于恢复onSaveInstanceState() 保存的的临时数据。(onSaveInstanceState保存的数据也可以在onCreate中恢复)
注意:onSaveInstanceState()方法和onRestoreInstanceState()方法不是生命周期方法,它们不一定会被触发!
网友评论