Android开发艺术探索读书笔记:第一章

来源:互联网 发布:怎样开淘宝服装网店 编辑:程序博客网 时间:2024/06/03 05:03

第一章

1、当从Activity1跳转至Activity2时,先执行Activity1的onPause方法,然后再执行Activity2的onCreate方法,因此在onPause方法中做一些不耗时间的操作,如存储数据和停止动画等,做耗时操作会影响新Activity的显示。而在onStop方法中可做以稍微重量级的回收工作,在onDestroy中做最终的回收和资源释放工作。

2、onStop和onStart对应Activity是否可见,onResume和onPause对应Activity是否位于前台(即是否可响应用户触摸)。

3、Activity的启动请求先由Instrumentation处理,它通过Binder向AMS(ActivityManagerService)发送请求,AMS内部维护一个ActivityStack并负责其内部的Activity状态的同步,AMS通过ActivityThread去同步Activity的状态并完成生命周期方法。(暂时也不明白,先记着)

4、一些后台操作不适合脱离四大组件独自运行,因为这样进程容易被杀死,比如后台操作放在Service中能够保证有一定的优先级。

5、Activity的FLAG:1、FLAG_ACTIVITY_NEW_TASK:相当于在为Activiy配置singleTask属性;2、FLAG_ACTIVITY_SINGLE_TOP:相当于在为Activiy配置singleTop属性;3、FLAG_ACTIVITY_CLEAR_TOP:当此Activity启动会清除它上方的Activity出栈;4、FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS:该Activity不会出现在历史Activity列表中。

====================================================================================================================================

IntentFilter匹配规则:

1、action匹配规则:Intent中的action必须存在且只要和匹配规则中的任意一个action相同即可匹配;

2、category匹配规则:Intent中的所有category必须被包含在IntentFilter中所有已经定义的category之中,如果不设置Intent中的category,则系统会默认加上DEFAULT这个category,所以如果Activity接受隐式调用则必须在IntentFilter标签下定义这个DEFAULT的category,否则隐式intent自带的DEFAULT不包含在其中调用失败。

3、data匹配规则:

data由mimeType和URI组成。

URI格式:<scheme>://<host>:<port>/[<path>|<pathPrefix>|<pathPattern>](schemem默认值为content或者file)

URI例子:content://come.example.project:200/folder/subfolder/etc

匹配规则:与action类似,必须有data,且匹配IntentFilter中某一个data就行。

intent设置data时候必须调用setDataAndType


判断是否有Activity能够响应隐式intent:

1、PackageManager的resolveActivity或者 queryIntentActivities方法

上面两个方法第二个参数传MATCH_DEFAULT_ONLY,代表仅仅匹配声明了DEFAULT的Activity,不带此声明的无法接受隐式intent

2、intent的resolveActivity方法



阅读全文
0 0