Android 基础总结篇 - Activity

番外: 如何分析问题:

1. 一个问题的出现,必然有它的原因,场景,触发条件

2. 冷静的分析解决问题:

          1. what 这个问题是什么

          2. when 在什么场景下发生的

          3. how 上下文是什么,如何被触发

          4. why 为什么被触发

一:Activity 

1. 什么是Activity 

1. Android 四大组件之一

2. 是 context 子类,同时实现了 window.callback、keyevent.callback 可以处理窗体与用户交互的事件

3. 常见的 Activity 有 FragmentActivity、ListActivity、TabActivity

4. 如果界面有共同的特点或工鞥呢,我们还会自己定义一个 BaseActivity

2. Activity 的生命周期

1. onCerate 初始化

2. onStart 可见 不可交互

3. onResume 获得焦点,可交互,此时的 Activity 进入运行状态

4. onPause 失去焦点

5. onStop 不可见

6. onRestart 重新变得可见

3. 启动一个 Activity 

1. 先调用 onCreate 初始化

2. 再调用 onStart 可见

3. 最后调用 onResume 获得焦点

4. 失去焦点

1. 会调用 onRause 暂停当前 Activity 的执行

5. Activity 不可见 

1. 先调用 onPause 失去焦点

2. 再调用 onStop 变得不可见

6. 再次可见

1. 先调用 onRestart

2. 再调用 onStart 变得可见

3. 最后调用 onResume 进入运行状态

7. 系统杀死当前 Activity<内存不足>,再退回当前 Activity

1. 重新走流程 onCreate -> onStart -> onResume

2. 说明:

          1. 当系统认为一个 Activity 可能会被回收时,系统会调用它的 onSaveInstanceState 方法

          2. 当一个被回收的系统被重新打开时,系统会调用它的 onRestoreInstanceState 方法

          3. 当 Activity 系统配置发生改变后,如果他被重新启动,那么系统会:

                    1. 通过 onSaveInstanceState 保存数据

                    2. 同时通过 onRestoreInstance 来恢复数据

8. 横竖屏切换时 Activity 的生命周期

1. 跟清单文件中的配置有关:

          1. 不设置 Activity 的 android:configChanges 时,切屏会重新调用各个生命周期,默认首先贤惠当前的 Activity 然后重新加载

          2. 设置时,切屏不会重新调用各个生命周期,只会执行 onConfigurationChanged 方法

9. 将一个 Activity 设置成窗口样式 

1. 配置:android:theme=“@androids:style/Theme.Dialog”

10. 如何退出一个 Activity

1. 返回键退出

2. 代码直接调用 finish() 方法

11. 如何安全退出已调用多个 Activity 的 App

1. 记录打开的 Activity,退出时关闭每一个即可

2. 发送特定的广播关闭 Activity

3. 递归退出:在打开新的 Activity 时,调用 startActivityResult 方法,然后自己加 tag,在 onActivityResult 中处理

12. Activity 的 4 种 LaunchMode<启动模式>

1. standard 标准模式 <默认>:

          1. 不管有没有已存在的实例,都会生成一个新的实例

          2. 可以有多个相同的实例,允许多个相同的 Activity 叠加

2. singleTop 栈顶复用:

          1. 对应的 Activity 实例位于栈顶,则重复利用,否则生成新的实例

          2. 调用 onNewIntent 方法 <没有创建新的 Activity>

          3. 避免栈顶的 Activity 被重复创建,影响用户体验

          4. 应用场景:浏览器书签

3. singleTask 栈内复用

          1. 该 Activity 实例之上的其他 Activity 实例全部出栈

          2. 使此 Activity 实例成为栈顶对象,显示到屏幕前

 4. singleInstance 单例

          1. 启用一个新的栈结构,将该 Activity 的实例放置中,并保证不会有其他的 Activity 实例进入

13. Activity Window View 三者之间的关系

1. Activity 控制单元,Window 承载模型,View 显示视图

2. Activity 在创建时,还会创建一个 window、DecorView

2. Activity 通过 ViewRoot 将视图 View 添加在 Window 上

3. Activity 控制、依赖 Window,Window 通过 ViewRoot 和 DecorView 和 View 建立联系

14. 如何判断当前的应用是在前台还是后台?

1. 在 Activity 的生命周期中维护一个常量值

2. 在 onStart 时 appCount +1

3. 在 onStop 时 appCount -1

4. 判断该值是否为 0,就可以判断该 App 是在前台还是后台

5. eg:

          1. 启动 Activity A,onStart appCount = 1,

          2. 在 A 中启动 Activity B,APPCount = 2,

          3. A 经过 onStop,APPCount = 1

          4. 直接退出,按 Home,没有 onStart,只经历 onStop,此时处于后台,appCount = 0

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,980评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,178评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,868评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,498评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,492评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,521评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,910评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,569评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,793评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,559评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,639评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,342评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,931评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,904评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,144评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,833评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,350评论 2 342

推荐阅读更多精彩内容