android开发艺术探索第一章总结

异常情况下acitivty生命周期,

比如在屏幕旋转的时候 

onSaveInstanceState->oncrate->onRestoreInstanceState

分别执行3个方法

onSaveInstanceState在onstop方法之前调用,用来保存信息。

onRestoreInstanceState在onstart之后调用,用来取出信息,当此方法被调用的时候,bundle一定有值

很多的系统的view实现了onSaveInstanceState和onRestoreInstanceState

比如textview。当屏幕旋转的时候,textview会自动保存自己的文字,具体的源码可以在textview的onSaveInstanceState方法中看到

onSaveInstanceState保存数据的方式是委托方式,当前的acitivity会委托window保存数据,一层层传递上去,到达顶级view,在通知所有的子view保存数据

关于进程的优先级简单介绍,

前台acitivty优先级最高在然后是可见但是不是前台的activity,最后是后台的activity,同时如果一个进程没有依赖4大组件存活的话,会很快的被系统杀死,所以android推荐在server中执行后台任务,能保证进程的优先级

activity的启动模式

标准模式,standard :每次启动一个activity都会在栈内创建新的实例

栈顶复用模式,singletop:每次启动一个activity,如果该activity在栈顶,则不会创建新的实例,否则会创建

栈内复用模式,singletask:每次启动一个acitivity,如果在该栈内已经存在该activity,则不会创建新的实例,同时会将栈内已经存在的activity移入栈顶,同时移动该activity顶上所有的acitivty实例

单实例模式,singleinstance:它具有所有singletask的特性,同时还要一条新的特性,拥有该模式的acitivity只能单独的存在在一个栈中,且后续的请求都不会继续创建新的实例

activity隐式的启动, 通过intentfilter进行匹配

匹配信息有action,data,category,

action匹配规则,只要拥有任何定义的一个action,就可以启动成功

category匹配规则,intent可以没有category,因为在startactivity的时候,系统会默认的创建一个android.intent.catrgory.default,不过当intent拥有category的时候,必须和在androidmanifest中定义的category相同才能成功匹配

data匹配规则和action相同,同时多出一个type类型,比如<data android:mimetype="image/*"/>

可以通过intent.setdataandtype进行设置,必须和定义的相同才能匹配成功

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值