其他分享
首页 > 其他分享> > 《Android开发艺术探索》阅读笔记

《Android开发艺术探索》阅读笔记

作者:互联网

@

目录

Activity

Activity的生命周期

典型情况下的生命周期分析

image

onStart和onStop是从Activity是否可见这个角度来回调的,而onResume和onPause是从Activity是否位于前台这个角度来回调的。

假设当前Activity为A,如果这时用户打开一个新Activity B,那么B的onResume和A的onPause哪个先执行呢?
onPause,再onResume

异常情况下的生命周期分析

资源相关的系统配置发生改变导致Activity被杀死并重新创建(如竖屏变横屏)

image

资源内存不足导致低优先级的Activity被杀死

Activity按照优先级从高到低,可以分为如下三种:

(1)前台Activity——正在和用户交互的Activity,优先级最高。
(2)可见但非前台Activity——比如Activity中弹出了一个对话框,导致Activity可见但是位于后台无法和用户直接交互。
(3)后台Activity——已经被暂停的Activity,比如执行了onStop,优先级最低。

当系统内存不足时,系统就会按照上述优先级去杀死目标Activity所在的进程,并在后续通过onSaveInstanceState和onRestoreInstanceState来存储和恢复数数据。如果一个进程中没有四大组件在执行,那么这个进程将很快被系统杀死,因此,一些后台工作不适合脱离四大组件而独自运行在后台中,这样进程很容易被杀死。比较好的方法是将后台工作放入Service中从而保证进程有一定的优先级,这样就不会轻易地被系统杀死。

AndroidManifest中android:configChanges=""相关配置

image

例如:当配置了android:configChanges="orientation|screenSize"时,在屏幕旋转的时候,系统将不会重新创建Activity,而会回调onConfigurationChanged方法,这时就可以在这个方法里做自己的特殊处理了

Activity的启动模式

Activity的LaunchMode

标签:生命周期,优先级,探索,笔记,configChanges,Activity,后台,杀死,Android
来源: https://www.cnblogs.com/hanayouco/p/16120164.html