【笔记】对android生命周期的理解
因为近来在准备秋招的事情,所以今天有时间就总结一下android生命周期的相关知识概念。
其实我想起来我大二刚开始一个人学android的时候,是没有看视频课程自己看书学的,看的那一本《android权威指南》。当时学的就特别混乱,因为那时候自己也没有实际开发过app什么的,所以对生命周期的理解就很不到位,就是如果真的初学者只看书学android,看到生命周期就会感觉有些晦涩难懂。
后来就是自己也做一些相关的业务开发之后,对生命周期的理解就逐渐明朗了。生命周期就是android的activity、fragment和service在运行过程中状态的变化,我们了解生命周期就是为了在状态变化时做相应的响应。比如希望每次activity可见的时候都能刷新一下数据,我应该在生命周期的哪个步骤进行更新数据和ui。
1.Activity的生命周期
Activity是android四大组件中最为常用的组件,也是大家一开始“hello world”的地方
正常情况下Activity会有如下的生命周期,在对应的生命周期里可以执行操作,我们要做的事就是理解生命周期,然后在“在正确的地方做正确的事”
【注】这一部分阅读《Android开发艺术探索》的个人总结
/*1.onCreate:
每个Activity在写代码的过程中都会看见这个函数,是声明周期的第一个方法。一般做一些资源和数据初始化的工作,比如绑定相对应的资源布局setContentView*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
/*2.onRestart:
字面意思表示Activity重新启动,这个状态一般由用户切换应用的行为产生,比如从应用切换到桌面或者切打开新的Activity,此时这个Activity就会调用onPause和onStop让这个Activity进入展厅状态。再回到这个Activity就是onRestart了*/
@Override
protected void onRestart() {
super.onRestart();
}
/*3.onStart:
这个状态我理解就是Activity启动中的一个过程,就是启动中,但是还不能与用户交互(用户不可见),属于一个在后台的状态*/
@Override
protected void onStart() {
super.onStart();
}
/*4.onResume:
表示Activity已经可见,且已经开始活动。与onStart类似的状态但是就是属于一种在前台的状态*/
@Override
protected void onResume() {
super.onResume();
}
/*5.onPause:
是一个非常微妙的状态,处于正在停止的一个临界点,就很难重现这种状态,就是在停止过程中,先执行onPause然后在onStop执行之前,回到Activity执行onResume,这期间就是onPause的状态。此处可以做一些存储数据停止动画的工作,但是不能太耗时,不然会影响到新Activity的显示,只有这些操作做完,新Activity的OnResume才会执行。*/
@Override
protected void onPause() {
super.onPause();
}
/*6.onStop:
表示Activity即将停止,可以做一些相对重量级的回收工作,同样不能太耗时。*/
@Override
protected void onStop() {
super.onStop();
}
/*onDestroy
表示Activity即将被销毁,这是Activity生命的尽头,可以做一些回收工作和资源的释放。*/
@Override
protected void onDestroy() {
super.onDestroy();
}
当然状态是以上的状态,但实际应用中,处理过程要理解“从哪来”“到哪去”“要干嘛”这三件事,就要根据图来理解。
之后再更新再写2019.10.10