一:生命周期:

典型情况:onCreate - onRestart - onStart - onResume - onPause - onStop - onDestory

1.按back键:onPause - onStop - onDestory

2.按home键:onPause - onStop - onRestart - onStart - onResume

3.A(activity)  → B (activity):

onPause - onCreate - onStart - onResume - onStop

3(1).B(activity) 在任务栈内, onCreate 不会执行

3(2).B(activity) 是透明或者dialog 的 activity , onStop 不会执行

  异常情况:onPause - onStop - onDestory - onCreate - onStart - onResume

1.系统配置发生改变(屏幕方向;键盘;系统语言)

2.被系统回收(内存不足)

数据的保存与恢复:

1.onSaveInstanceDate ,onRestoreInstanceDate:·(委托)

系统会默认为我们保存当前Activity 的视图结构,并在重启后恢复

数据 (例如:文本框输入的数据,ListView的滚动位置)

2. android:configChanges

二:启动模式

standard - singleTop - singleTask - singleInstance

1.standard:多实例,任务栈有当前activity,仍然创建

A → B → C → D    (启动 D) A → B → C → D → D

2.singleTop:在栈顶的activity 不会重复创建(NewIntent)

A → B → C → D    (启动 D) A → B → C → D

3.singleTask:单实例,任务栈内有当前实例,不会再次创建                                                                ( NewIntent,ClearTop,TaskAffinity,allowTaskReparenting)

任务栈  →  实例

4.singleInstance:单实例,加强的SingleTask,单独的任务栈,只有一个实例

          启动方式:

1.AndroidMenifest:无法为Activity提供FLAG_ACTIVITY_CLEAR_TOP标识

2.Intent:不能启动 SingleInstance

SingleTask:

1.默认的任务栈是包名,创建时先查看当前是否是配置的任务栈,再查看所属任务栈是否有当前实例(任务栈 - activity 实例

2.clearTop (不管是位于任务栈的栈顶还是栈底,再次运行这个Activity时,都会destory掉它上面的Activity来保证整个栈中只有一个自己)

3.onNewIntent,存在 Activity 实例(onNewIntent() -> onRestart() -> onStart() -> onResume()) ,如果在 onNewIntent(Intent) 中,不调用 setIntent(Intent) 方法对 Intent 进行更新的话,那么之后在调用 getIntent() 方法时得到的依然是最初的值。不要忘记,系统可能会随时杀掉后台运行的 Activity ,如果这一切发生,那么系统就会调用 onCreate 方法,而不调用 onNewIntent 方法,一个好的解决方法就是在 onCreate 和 onNewIntent 方法中调用同一个处理数据的方法。

4.TaskAffinity(任务相关性,为singleTaskActivity 指定任务栈(默认是包名))

 allowTaskReparenting = true :典型应用是让一个应用程序的 Activity 转移到另一个应用程序关联的主任务中去。

三:使用场景     

singleTop: 适合启动同类型的 Activity,例如接收通知启动的内容显示页面

singleTask: 适合作为程序入口

singleInstance: 适合需要与程序分离开的页面,例如闹铃的响铃界面

Activity启动过程描述:

当请求启动Activity时:

1.Launcher进程通过Binder驱动向ActivityManagerService类发起startActivity请求;

2.ActivityManagerService类接收到请求后,向ActivityStack类发送启动Activity的请求;

3.ActivityStack类记录需启动的Activity的信息 & 调整Activity栈 将其置于栈顶、通过 Binder 驱 动 将 Activity 的启动信息传递到ApplicationThread线程中(即Binder线程)

4.ApplicationThread线程通过Handler将Activity的启动信息发送到主线程ActivityThread 主线  程

5.ActivityThread类接收到该信息 & 请求后,通过ClassLoader机制加载相应的Activity类,最  终调用Activity的onCreate(),最后 启动完毕

Android开发艺术探索一 Activity相关推荐

  1. Android开发艺术探索之Activity篇总结

    本文内容来自<Android开发艺术探索>第一章,个人学习提炼总结,欢迎指正. 1.1典型情况下的生命周期 onCreate():表示Activity正在被创建,初始化布局资源+Activ ...

  2. Android开发艺术探索笔记

    <Android开发艺术探索>这本书在几年前就已经买了,陆陆续续看过几次,都没有看完,没有理解透. 最近重读<Android开发艺术探索>,读了两次,第一次读完感觉还有大量的知 ...

  3. Activity的初级,中级,高级问法,android开发艺术探索电子

    Intent implicitIntent = new Intent(); implicitIntent.setAction("com.test.image"); implicit ...

  4. Android开发艺术探索笔记(一) Activity的生命周期和启动模式(1)

    Activity作为Android开发中最常用的一个组件,是Android开发人员必须熟悉且掌握的重要内容.同时Activity也是在面试中经常被问到的一个方向.因此,掌握Activity的重要性也不 ...

  5. 《Android开发艺术探索》图书勘误

    第一章 在13页提到"系统只在Activity异常终止的时候才会调用onSaveInstanceState与onRestoreInstanceState来储存和恢复数据,其他情况不会触发这个 ...

  6. Android开发艺术探索——第七章:Android动画深入分析

    Android开发艺术探索--第七章:Android动画深入分析 Android的动画可以分成三种,view动画,帧动画,还有属性动画,其实帧动画也是属于view动画的一种,,只不过他和传统的平移之类 ...

  7. Android开发艺术探索读书笔记(一)

    首先向各位严重推荐主席这本书<Android开发艺术探索>. 再感谢主席邀请写这篇读书笔记 + 书评.书已经完整的翻完一遍了,但是还没有细致的品读并run代码,最近有时间正好系统的把整本书 ...

  8. Android开发艺术探索完结篇——天道酬勤

    这片文章发布,代表着我已经把本书和看完并且笔记也发布完成了,回忆了一下我看Android群英传,只用了两个月,但是看本书却花了2016年05月04日 - 2018年07月16日,整整两年多,真是惭愧 ...

  9. 《Android开发艺术探索》完结篇

    笔记链接: <Android开发艺术探索>之Activity的生命周期和启动模式(一) <Android开发艺术探索>之IPC机制上(二) <Android开发艺术探索& ...

最新文章

  1. 使用ansible部署安装corosync+pacemaker
  2. js简单手动(自动)切换
  3. 2057. [ZLXOI2015]殉国
  4. java保存私钥_如何在Java中使用密钥库来存储私钥?
  5. Linux-2.6.20的cs8900驱动分析
  6. 探讨视频云与边缘云平台的竞争力 ——基于Serverless的端边云一体化媒体网络...
  7. ASP.NET Core 6.0对热重载的支持
  8. python soup findall_Python之BeautifulSoup常用详细使用
  9. 数学思想 —— 简化问题
  10. 整理了个软件需求规格说明书模板
  11. GO PDF资源 汇总!
  12. pm模式 raid_Adaptec RAID PM8060 用户手册.pdf
  13. 研发数据安全解决方案
  14. Hello,programer! 我的第一篇博客
  15. DTU是什么,什么是工业4G DTU?
  16. 制作sim卡 服务器,diao丝绅士日记-自己撸系列 篇一:从此不再做diao丝-自制SIM卡套篇...
  17. python视频转字符动画_python字符动画
  18. HD44780http://blog.sina.com.cn/s/blog_61b6e08b01016xif.html
  19. 【我的读书】《薛兆丰经济学讲义》助你变得更理性、悦纳和进取
  20. 时间序列分析-----2---时间序列预处理

热门文章

  1. ubuntu16.04 制作系统镜像(系统、软件备份)
  2. [转帖]我的2006
  3. java失物招领及估价拍卖系统
  4. 学习微信小程序,getUserInfo与getUserProfile
  5. 郭大侠与线上游戏(set)
  6. KFS replicator安装(SQLServer-KES)
  7. jasperReport 交叉表使用示例
  8. Python读取Excel展现在网页上
  9. PPT课件的制作经验
  10. 今天是一个特别的日子