《android开发艺术探索》学习笔记(一)

《android开发艺术探索》学习笔记(一)


《android开发艺术探索》这本书在网上看到很久了,评价也不错,在着看了坐着的csdn博客推荐的android系统学习之路,觉得挺不错,准备按照此线路学习下去,笔者属于刚入门项目经验不多的初级码农,也就刚毕业的好那么点,也正迫切需要一本好的进阶书籍,在网上找来找去都是些基础相关的,看着没多大长进都是些炒闲饭的。网上博客学习有点事接触面广,能接触到各种大牛的精彩分析,有些见解独到,但缺点也很突出,面太广看的比较杂,再者不够深,即使深了有的没有前后文的讲解不一定看得懂。所以迫切需要一本系统学习的进阶书,于是在至此亿人剁手的日子,入手了这本《android开发艺术探索》和《android群英传》。

 故而想通过以博客的形式记录下学习的知识点以便后期回顾,再者可以写写自己的见解和理解(笔者才疏学浅可能大部分还是总结知识点,遇到熟悉的地方可能会加上自己的想法和感受)


第一章 activity的生命周期和启动模式


onpause和onstop中不能进行耗时操作,因为只有onpause结束后才能新开启一个activity


异常情况下的生命周期分析
1、资源相关的系统配置发生改变导致activity被杀死并重新创建
activity异常情况下终止,系统会调用onSaveInstanceState来保存当前activity的状态,在onstop之前,再重新调用activity时调用omRestoreInstanceState会恢复之前状态,在onstart之后


2、资源内存不足导致低优先级的activity被杀死
 activity优先级按照从高到低:
  (1)前台activity(onresume)
   (2)可见但非前台activity  (onpause)
    (3)后台activity,已经被暂停的activity,执行了onstop


不想让activity在屏幕旋转的时候重新创建,就可以给configChanges属性添加orientation
  android:configchanges = "orientation"(locale:设备本地位置发生变化,一般指切换语言,keyboardHidden:键盘的可访问性发生变化时,比如用户调出键盘)


activity LaunchMode启动模式
四种启动模式:standard、singleTop、singleTask和singleInstance
1、standard:标准模式,系统默认的模式。每次启动一个activity都会重新创建一个新的实例

2、singleTop:栈顶复用模式。在这种模式下,如果新activity已经位于任务栈的栈顶,那么此activity不会被重新创建,同时onNewIntent方法会被回调,通过此方法的参数我们可以去除当前请求信息。

3、singleTask:栈内复用模式。这是一个单实例模式,在这种模式下,只要activity在栈中存在,那么多次启动此activity都不会重新创建实例,和singletop一样,系统也会回调其onNewIntent。

4、singleInstance:单实例模式。这个是一种加强的singleTask模式,它除了具有singleTask模式的所有特性外,还加强了一点,那就是具有此种模式的Activity只能单独地位于一个任务栈中。


Activity的Flags标志


四种标志:
1、FLAG_ACTIVITY_NEW_TASK
这个标记位的作用是为Activity指定"singleTask"启动模式,其效果和在XML中指定该启动模式相同。

2、FLAG_ACTIVITY_NEW_TOP
这个标记位的作用是为Activity指定"singleTop"启动模式,其效果和在XML中指定该启动模式相同。

3、FLAG_ACTIVITY_CLEAR_TOP
具有此标记位的Activity,当它启动时,在同一个任务栈中所有位于它上面的Activity都要出栈

4、FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
具有这个标记的Activity不会出现在历史Activity的列表中,当某些情况下我们不希望用户通过历史列表回到我们的activity的时候这个标记比较有用。它等同于在XML中指定Activity的属性:android:excludeFromRecents = "true"。


IntentFilter匹配规则
三种过滤信息:action、category、data


action和data是或的关系,只要满足其中一个配对即可
category是与的关系,必须满足所有配对条件才行

你可能感兴趣的:(学习)