1.
Android中许多组件的生命周期都是对称的,这里也不例外。正确的是onCreate()---->onBind() ---->onUnBind() -->onDestory()2.补充一句:style和theme本质上就是同一个东西,xml格式完全相同,只是我用在activity上我就叫他theme,我用在view上我就叫他style。唯一的区别就是style里头控制的各个属性了,某些属性是只有针对Activity才能生效的(你view有标题栏嘛有状态栏有导航栏吗嘛?但是反过来Activity内部却有一个继承自View的Decorview) 。所以style可以作用在activity上,但是theme却不能反过来作用在view上。
至于C,如一楼C.C.所说的,出题人所说能不能继承指的是Theme这个类的不可继承,强调的是类为final所以不能继承。而在XML里头使用parent来指明父Theme这种不属于类的继承。 也算是有歧义的题目了,因为不知道“继承”是指类的这种狭义的继承还是后者那种广义的继承。
不妨补充一下XML解析方式,遇到parent之后之后就去parent里头解析,然后如此递归,解析完各级的父XML之后,再回到子XML解析。然后后解析的XML元素覆盖前面解析的同名XML元素,就是模拟了类的继承规则啦。
3.我觉得Toast的自定义和可编辑是不同的。一个EditText才是可编辑的吧。
4.“拿来主义”standard模式。哪里需要调用我我就去哪里,可以多次实例化,可以几个相同的Activity重叠。
“拒绝堆叠”singleTop模式。可以多次实例化,但是不可以多个相同的Activity重叠,当堆栈的顶部为相同的Activity时,会调用onNewIntent函数。
“独立门户”singleTask模式。同一个应用中调用该Activity时,如果该Activity没有被实例化,会在本应用程序的Task内实例化,如果已经实例化,会将Task中其上的Activity销毁后,调用onNewIntent;其它应用程序调用该Activity时,如果该Activity没有被实例化,会创建新的Task并实例化后入栈,如果已经实例化,会销毁其上的Activity,并调用onNewIntent。一句话,singleTask就是“独立门户”,在自己的Task里,并且启动时不允许其他Activity凌驾于自己之上。
“孤独寂寞”singleInstance模式。加载该Activity时如果没有实例化,他会创建新的Task后,实例化入栈,如果已经存在,直接调用onNewIntent,该Activity的Task中不允许启动其它的Activity,任何从该Activity启动的其他Activity都将被放到其他task中,先检查是否有本应用的task,没有的话就创建。
5.andrroid的动画类型
1.帧动画 Frame 一帧一帧的
2.补间动画 Tween 慢慢过渡,设置初值和末值,并用插值器来控制过渡
3.属性动画 ObjectAnimation ValueAnimation 控制属性来实现动画。
属性动画是3.0以后加入的动画。三种动画各有各的好处和缺点
特点:
1.帧动画由于是一帧一帧的,所以需要图片多。会增大apk的大小,但是这种动画可以实现一些比较难的效果
比如说等待的环形进度。。多用这个做。
2.补间动画 可以设置差值器和初末值来控制。相对也比较简单,页面切换的动画多用这个来做。缺点,视觉上
上变化,并不是真正的位置上的变化。
3.属性动画 最为强大的动画,弥补了补间动画的缺点,实现位置+视觉的变化。并且可以自定义插值器,实现各种
想要的效果。典型案例-----》卫星菜单。
6.
在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:ApplicationNot Responding)对话框。用户可以选择“等待”而让程序继续运行,也可以选择“强制关闭”。
默认情况下,在android中Activity的最长执行时间是5秒,BroadcastReceiver的最长执行时间则是10秒。超出就会提示应用程序无响应(ANR:ApplicationNot Responding)对话框。
三种常见类型
1: KeyDispatchTimeout(5seconds) -- 主要类型
按键或触摸事件在特定时间内无响应
2 : BroadcastTimeout(10seconds)
BroadcastReceiver在特定时间内无法处理完成
3: ServiceTimeout(20seconds) -- 小概率类型
Service在特定的时间内无法处理完成