zoukankan      html  css  js  c++  java
  • 《安卓开发艺术探索》第一章 Activity的生命周期和启动模式—学习笔记

    这个文集中文章主要是自己在学习中记录的重要知识点,方便日后查阅。

    一、正常生命周期

    1. 从当前Activity启动一个新的Activity,若新的Activity使用的是透明主题,那么当前Activity不会回调onStop。
    2. 当前Activity A 启动新的Activity B 是先执行A的onPause,在执行B的onResume。
    3. onPause和onStop中都不能做重量级的操作。

    二、异常生命周期

    1. 当Activity在异常的情况下终止的(横竖屏切换),onPause、onStop、onDestroy都会被调用,还会调用onSaveInstanceState来保存当前Activity的状态,改方法在onStop前调用。Activity重新创建后调用onRestoreInstanceState把Activity销毁时,保存的Bundle对象,作为参数传递给onRestoreInstanceState和onCreate方法来恢复数据。

    2. 内存不足时会杀死优先级第的Activity,Activity优先级分类自上到下:

      1. 前台Activity,正在和用户交互的Activity,优先级最高
      2. 可见非前台ACtivity,列如当前Activity被对话框挡住,无法操作
      3. 后台Activity,已经被暂停的Activity。
    3. 如果不想重新创建Activity,可以给Activity指定configChanges属性。

    三、Activity的LaunchMode

    1. 使用非Activity类型的Context(如ApplicationContext),去启动一个standard模式的Activity,会报错。因为standard模式的Activity会进入启动它的Activity所属的任务栈中,而非Activity类型的没有任务栈。解决方法:为新启动的Activity指定FLAG_ACTIVITY_NEW_TASK模式。
    2. singleTop和singleTask都会回到onNewIntent。
    3. 在Intent设置的启动模式要优先于AndroidMenifest设置隐式启动模式
    4. FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS具有这个标记的Activity不会出现在历史Activity的列表中。
  • 相关阅读:
    【LOJ】#3034. 「JOISC 2019 Day2」两道料理
    vue学习笔记(七)组件
    vue学习笔记(五)条件渲染和列表渲染
    vue学习笔记(一)入门
    JavaScript学习总结之函数
    JavaScript学习总结之对象的深拷贝和浅拷贝
    javascript学习总结之Object.assign()方法详解
    ES6学习总结之变量的解构赋值
    ES6学习总结之let和const命令
    javascript学习总结之Object.keys()方法详解
  • 原文地址:https://www.cnblogs.com/cloud9527/p/13161453.html
Copyright © 2011-2022 走看看