《Android开发艺术探索》阅读笔记
作者:互联网
@
目录Activity
Activity的生命周期
典型情况下的生命周期分析
onStart和onStop是从Activity是否可见这个角度来回调的,而onResume和onPause是从Activity是否位于前台这个角度来回调的。
假设当前Activity为A,如果这时用户打开一个新Activity B,那么B的onResume和A的onPause哪个先执行呢?
先onPause,再onResume。
异常情况下的生命周期分析
资源相关的系统配置发生改变导致Activity被杀死并重新创建(如竖屏变横屏)
资源内存不足导致低优先级的Activity被杀死
Activity按照优先级从高到低,可以分为如下三种:
(1)前台Activity——正在和用户交互的Activity,优先级最高。
(2)可见但非前台Activity——比如Activity中弹出了一个对话框,导致Activity可见但是位于后台无法和用户直接交互。
(3)后台Activity——已经被暂停的Activity,比如执行了onStop,优先级最低。
当系统内存不足时,系统就会按照上述优先级去杀死目标Activity所在的进程,并在后续通过onSaveInstanceState和onRestoreInstanceState来存储和恢复数数据。如果一个进程中没有四大组件在执行,那么这个进程将很快被系统杀死,因此,一些后台工作不适合脱离四大组件而独自运行在后台中,这样进程很容易被杀死。比较好的方法是将后台工作放入Service中从而保证进程有一定的优先级,这样就不会轻易地被系统杀死。
AndroidManifest中android:configChanges=""相关配置
例如:当配置了android:configChanges="orientation|screenSize"时,在屏幕旋转的时候,系统将不会重新创建Activity,而会回调onConfigurationChanged方法,这时就可以在这个方法里做自己的特殊处理了
Activity的启动模式
Activity的LaunchMode
标签:生命周期,优先级,探索,笔记,configChanges,Activity,后台,杀死,Android 来源: https://www.cnblogs.com/hanayouco/p/16120164.html