Android面试Activity相关

1.activity的生命周期

答:当我们启动一个activity时,首先会调用onCreate()方法,它是activity启动的第一个生命周期方法,我们经常会在里面做一些初始化的操作,例如我们常见的setContentView(),它是将布局文件加载到我们的activity中去。此时,activity还处于一个不可见的状态。然后会执行onStart()方法,它表示activity正在启动,此时我们可以简单的理解为:activity已经被看见了,但是还不能与用户进行交互。最后会执行onResume()方法,此时activity已经可以和用户进行交互了。
     如果这时我们按下Home键,返回到主界面,activity会执行onPause()方法,这时activity还处于一个可见或者部分可见的状态,但是已经无法与用户进行交互。紧接着会执行onStop()方法,这时activity已经退居后台,处于完全不可见的状态,如果此时内存比较紧张,有可能会被系统回收。
    当我们点击应用再次回到我们的activity时,会执行onRestart()方法,表示activity正在重新启动,紧接着会调用onStart()方法和onResume()方法,重新从一个不可见的状态到一个可见可交互的状态
    当我们退出当前的activity时,它会依次调用onPause()方法、onStop()方法和onDestory()方法

onDeastory()方法是整个activity生命周期中的最后一个方法,它表示activity正在被销毁,在这里我们一般会做一些回收的工作,以及一些资源的释放。

2.activity的4种状态

答:activity有四种状态,它们分别是running,paused,stopped,killed

running状态表示activity正在运行,处于一个可见可交互的状态,与之对应的生命周期方法是onResume()方法

paused状态表示activity处于一个失去焦点的状态,此时activity处于一个可见或者部分可见的状态,同时activity也无法与用户进行交互,例如,我们又启动了一个透明的activity或者一个Dialog样式的activity 。与之对应的生命周期方法是onPause()方法

stopped状态表示activity已经退居后台,处于一个完全不可见的状态,如果此时手机的内存不足,activity有可能会被系统回收。与之对应生命周期方法是onStop()方法

killed状态表示activity已经被杀死,已经被系统回收。与之对应的生命周期方法onDestory()方法

3.activity的任务栈

答:android的任务栈,是android中非常非常重要的一个概念,也可以叫做Task。android的内部是一个栈结构。栈结构,就是一个后进先出的概念。利用这个栈来存储我们的activity。我们每次打开一个新的activity或者退出当前的activity的时候,都会在栈结构当中,添加或者删除一个activity。一个task其实就是一个activity的集合 ,android通过任务栈有序的管理每个activity。 我们知道,当我们要退出一个应用程序,需要将这个应用程序所有的activity清除出栈,才能完全的退出程序。只有当任务栈被销毁了,数据才会是最安全的状态。如果你不去删除它的话,一定要合理的保存这个任务栈。这时候,这个任务栈就保存了每个activity的状态,也会保存每个activity的信息。特别要注意的是,一定要安全的保存任务栈。还要注意的是,任务栈并不是唯一的,一个应用程序中,可能不止一个任务栈。在某些特殊情况下,一个activity也可以独享一个任务栈

猜你喜欢

转载自blog.csdn.net/u011065084/article/details/79703975