任玉刚【Android开发艺术探索】读后笔记一

1、如果新的Activity采用了透明主题,那么当前Activity不会回调onStop;

2、onPause和onStop都不能执行耗时的操作,尤其是onPause,因为onPause必须先执行完,新的Activity的onResume才会执行。尽量在onStop中做操作(如停止动画、存储数据),从而使得新的Activity尽快显示出来;

3、Activity在异常终止的情况下(如系统配置发生改变或者系统内存不足时),系统会调用onSaveInstanceState来保存当前Activity的状态。这个方法的调用时机是在onStop之前,和onPause没有既定的时序关系,有可能是之前也有可能是之后;

4、我们可以通过onRestoreInstanceState和onCrate方法来判断Activity是否被重建了,并取出之前保存得数据恢复,从时序上来说,onRestoreInstanceState的调用时机是在onStart之后;

5、当Activity在异常情况下需要重新创建时,系统会默认为我们保存当前Activity的视图结构,并且在Activity重启后为我们恢复,比如文本框中用户输入的数据、ListView滚动的位置等;

6、DecorView是整个Window界面的最顶层view,它只有一个子元素LinearLayout,代表整个Window界面,包括通知栏、标题栏和内容显示栏三块区域,LinearLayout有两个FrameLayout子元素;

7、关于保存和恢复view层次结构,系统采用的是典型的“委托思想”,即上层委托下层、父容器委托子元素去处理一些事情,这种思想在Android中有很多应用,比如View的绘制过程、事件分发等都是采用的类似思想;

8、如果一个进程中没有四大组件在执行,那么这个进程将很快被系统杀死,因此,一些后台工作不适合脱离四大组件而独自运行在后台,这样的进程很容易被杀死,比较好的方法是将后台工作放入service中从而保证进程有一定的优先级,这样就不会被轻易地被系统杀死;

9、当系统配置发生改变(如旋转屏幕、调出了键盘等),会导致Activity重新创建。为了不让它重新创建,我们可以给Activity指定configChanges属性。在AndroidMenifest.xml中为Activity声明 android:configChanges="orientation|keyboardHidden";系统会调用onConfigurationChanged方法,我们可以在这个方法里面做一些自己的特殊处理;

10、minSdkVersion和targetSdkVersion有一个大于13的话,为了防止旋转屏幕时Activity重启,除了orientation,我们还需要加上screenSize。


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本书是一本Android进阶类书籍,采用理论、源码和实践相结合的方式来阐述高水准的Android应用开发要点。本书从三个方面来组织内容。第一,介绍Android开发者不容易掌握的一些知识点;第二,结合Android源代码和应用层开发过程,融会贯通,介绍一些比较深入的知识点;第三,介绍一些核心技术和Android的性能优化思想。 第1章 Activity生命周期和启动模式 1 1.1 Activity生命周期全面分析 1 1.1.1 典型情况下的生命周期分析 2 1.1.2 异常情况下的生命周期分析 8 1.2 Activity的启动模式 16 1.2.1 Activity的LaunchMode 16 1.2.2 Activity的Flags 27 1.3 IntentFilter的匹配规则 28 第2章 IPC机制 35 2.1 Android IPC简介 35 2.2 Android中的多进程模式 36 2.2.1 开启多进程模式 36 2.2.2 多进程模式的运行机制 39 2.3 IPC基础概念介绍 42 2.3.1 Serializable接口 42 2.3.2 Parcelable接口 45 2.3.3 Binder 47 2.4 Android中的IPC方式 61 2.4.1 使用Bundle 61 2.4.2 使用文件共享 62 2.4.3 使用Messenger 65 2.4.4 使用AIDL 71 2.4.5 使用ContentProvider 91 2.4.6 使用Socket 103 2.5 Binder连接池 112 2.6 选用合适的IPC方式 121 第3章 View的事件体系 122 3.1 View基础知识 122 3.1.1 什么是View 123 3.1.2 View的位置参数 123 3.1.3 MotionEvent和TouchSlop 125 3.1.4 VelocityTracker、GestureDetector和Scroller 126 3.2 View的滑动 129 3.2.1 使用scrollTo/scrollBy 129 3.2.2 使用动画 131 3.2.3 改变布局参数 133 3.2.4 各种滑动方式的对比 133 3.3 弹性滑动 135 3.3.1 使用Scroller 136 3.3.2 通过动画 138 3.3.3 使用延策略 139 3.4 View的事件分发机制 140 3.4.1 点击事件的传递规则 140 3.4.2 事件分发的源码解析 144 3.5 View的滑动冲突 154 3.5.1 常见的滑动冲突场景 155 3.5.2 滑动冲突的处理规则 156 3.5.3 滑动冲突的解决方式 157 第4章 View的工作原理 174 4.1 初识ViewRoot和DecorView 174 4.2 理解MeasureSpec 177 4.2.1 MeasureSpec 177 4.2.2 MeasureSpec和LayoutParams的对应关系 178 4.3 View的工作流程 183 4.3.1 measure过程 183 4.3.2 layout过程 193 4.3.3 draw过程 197 4.4 自定义View 199 4.4.1 自定义View的分类 200 4.4.2 自定义View须知 201 4.4.3 自定义View示例 202 4.4.4 自定义View的思想 217 第5章 理解RemoteViews 218 5.1 RemoteViews的应用 218 5.1.1 RemoteViews在通知栏上的应用 219 5.1.2 RemoteViews在桌面小部件上的应用 221 5.1.3 PendingIntent概述 228 5.2 RemoteViews的内部机制 230 5.3 RemoteViews的意义 239 第6章 Android的Drawable 243 6.1 Drawable简介 243 6.2 Drawable的分类 244 6.2.1 BitmapDrawable 244 6.2.2 ShapeDrawable 247 6.2.3 LayerDrawable 251 6.2.4 StateListDrawable 253 6.2.5 LevelListDrawable 255 6.2.6 TransitionDrawable 256 6.2.7 Ins

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值