Android开发艺术探索读书笔记-Activity
来源:互联网 发布:宁波淘宝店铺运营群 编辑:程序博客网 时间:2024/06/07 06:50
1.Activity的生命周期函数调用顺序,前一个Activity没有执行onPause,后一个Activity的onResume不会被调用。因此不要在onPause中做耗时操作,耗时操作可以放在onStop中
2.异常情况下的生命周期,Activity中的控件也是存在onSaveInstantceState和onRestoreInstanceState方法的,系统会自动的将控件的状态恢复,具体会恢复到什么程度需要在开发的时候注意。Activity的onSaveInstantceState和onRestoreInstanceState用于保存开发者自己添加的属性。
3.onCreate和onRestoreInstanceState的参数bundle都能够用来恢复异常退出的Activity现场,只是onCreate的参数bundle在正常启动的情况下可能为空,需要注意。
4.Activity启动模式
-standard默认,同栈新实例。使用ApplicationContext启动standard模式的Activity会报错,原因是ApplicationContext中不包含任务栈的信息。解决办法是为待启动的Activity设置FLAG_ACTIVITY_NEW_TASK标记位,这样就会创建一个新的任务栈,此时相当于singleTask启动。
-singleTask,先看需要的任务栈存不存在,不存在则创建任务栈;需要的栈存在,去栈中找要启动的Activity实例是否存在,存在则将Activity实例前的其他Activity清栈,并回调其onNewIntent方法;实例不存在则创建Activity实例,然后放到栈顶。
-singleTop,只有待启动的Activity已经在任务栈的栈顶了才不会创建新实例,并调用onNewIntent方法。否则创建新Activity实例。
-singleInstance,单独任务栈,任务栈中只有一个Activity实例。
5.TaskAffinity标识了一个Activity所需要的任务栈的名字,任务栈名字默认为应用的包名。TaskAffinity与singleTask启动模式配合使用,在其他模式下无异议。
6.设置allowTaskReparenting属性为true可以实现,应用的某个Activity被从外部启动,home切出后再由桌面图标启动应用,可回到之前已从外部启动的Activity,而不是打开应用的主页面。
7.查看任务栈命令:adb shell dumpsys activity
8.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS这个activity的Flag等同于XML中指定android:excludeFromRecents=”true”,用于不希望用户过历史列表回到Activity的情况。
9.避免隐式启动找不到符合条件的Activity造成的异常有两种方法:PackageManager的resolveActivity方法和Intent的resolveActivity方法。根据返回值判断是否存在符合条件的activity
- <<Android开发艺术探索>>读书笔记--Activity LaunchMode
- Android开发艺术探索读书笔记-Activity
- Android Activity生命周期(Android艺术开发探索读书笔记)
- Activity 生命周期(Android开发艺术探索读书笔记)
- 《Android开发艺术探索》读书笔记----第一章:Activity的启动模式
- Android开发艺术探索读书笔记(一):Activity生命周期
- Android 开发艺术探索读书笔记
- 《Android开发艺术探索》读书笔记
- 【读书笔记】Android开发艺术探索
- 《Android开发艺术探索》读书笔记
- 《Android 开发艺术探索》读书笔记
- Android 开发艺术探索 读书笔记
- Android开发艺术探索读书笔记(一)
- Android开发艺术探索读书笔记(二)
- Android开发艺术探索读书笔记(三)
- Android开发艺术探索读书笔记(第一章)
- Android开发艺术探索读书笔记(一)
- Android开发艺术探索读书笔记(二)
- c#串口自动扫描程序
- (2) windows下zookeeper伪集群搭建
- POJ
- Linux 常用性能工具简介
- int型整数转换成字符串的C++实现
- Android开发艺术探索读书笔记-Activity
- 工作入门技巧整理
- CSS笔记(动画属性以及counter-reset属性)
- 分布式文件系统(HDFS)与linux系统文件系统关系
- Java之正则表达式来判断字符串中是否包含字母
- 解决远程连接mysql错误1130
- 碎片化阅读的危害
- 纯洁的买卖
- 数据库学习纪要(九):SQL Sever介绍-1