Android开发

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

本文主要是介绍《Android开发艺术探索》阅读笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

@

目录
  • Activity
    • Activity的生命周期
      • 典型情况下的生命周期分析
      • 异常情况下的生命周期分析
        • 资源相关的系统配置发生改变导致Activity被杀死并重新创建(如竖屏变横屏)
        • 资源内存不足导致低优先级的Activity被杀死
          • AndroidManifest中android:configChanges=""相关配置
    • Activity的启动模式
      • Activity的LaunchMode

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

这篇关于《Android开发艺术探索》阅读笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!