View体系之四大组件——Activity
首先在讲解Activity之前,我们先提出几个问题,之后一一解答。
(1)Activity的作用是什么?
(2)对Activity中的各个生命周期的理解
(3)对Activity的启动模式的理解
(4)区别Activity和AppcompatActivity
(5)理解Fragment以及其生命周期
(6)关于finish方法的理解
(7)常见场景Activity的生命周期分析
好了,现在开始我们的正题。
一、Activity生命周期
Activity是Android提供的四大组件之一,通常用于为用户呈现界面。(解决问题(1))
1、Activity的生命状态
如下图 1:
图 1
很多人对Activity中生命周期方法和生命周期状态有一定的误解,这里我们首先要把这个概念搞明白。
生命周期方法依次是:onCreate()-->onStart()-->onResume()-->onPause()-->onnStop()-->onStop()
生命周期状态为:created-->started-->resumed-->paused-->stoped--desptoryed
那么你可能要问了,他们之间有什么关系呢?
其实从图1中你也可以看出来,比如说一个Activity在执行完生命周期方法onCreate()方法后则进入created状态。
Activity的状态从持续时间长短上分为瞬态和静态两种。那么哪些属于静态,哪些又属于瞬态?
瞬态:created,started,destoryed,Activity到达某一个瞬态后会立即执行后面的方法,进入其他状态。
静态:resumed,paused,stoped,根据实际场景,Activity可能会停留这某一个静态
原因是,在生命周期的方法中,会依次执行onCreate()、onStart(),onResume(),执行完onResume()方法后,此时Activity可见并可获得焦点,处于resumed状态。
而如果被其他Activity遮挡但是仍然可见,则会执行onPause()进入paused状态,如果此时跳转到另一个Activity后,则会执行onPause()、onStop()方法处于stoped状态。
如果退出应用,那么此时Activity执行onDestory()执行销毁。具体可以参考下图 2:
Activity对应的状态有如下:
图 2
2、生命周期具体分析
生命周期方法
|
说明
|
onCreate()
|
在这一方法中,会创建Activity的实例,此时调用finish()方法会立即执行onDestory()
|
onStart()
|
此时Activity已经可见但是无法获得焦点
|
onResume()
|
此时可见有焦点
|
onPause()
|
可见但是无焦点
|
onStop()
|
此时无焦点也不可见,通常考虑在这里释放资源
|
onDestory()
|