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

第一章

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值