androidの面试试题(一)
本章作为面试者积累常见题目
7.Activity 与 Fragment 的区别
Fragment 是android 3.0 以后引入的,在之前一个屏幕只能显示一个activity ,activity 作为一个屏幕主体,而Fragment 是作为activity 一个组成元素.
一个activity 可以有多个Fragment组成,fragment 可以认为activity 的一个组件,随着activity生命周期的变化,Fragment 的生命周期也在变化.
Fragment 必须依赖 activity 生存. activity 是在onCreate方法中加载布局的,而Fragment 是在onCreateView方法中加载布局的. activity 在销毁后再次进入
会重新调用onCreate方法,但是Fragment 不会执行onCreate方法,而是执行onCreateView方法加载view.
6. Fragment 使用优点
Fragment 可以将一个activity 分离成多个碎片组件,都拥有自己的ui 和生命周期.
Fragment 可以轻松创建灵活的UI设计,可以适应于不同的屏幕尺寸,从手机到平板适配.
Fragment 可以作为activity一个独立的组件,方便进行填加,删除,交换操作.
Fragment 做局部ui更新更方便,以前是将多个布局放到同一个xml 中,现在利用多个Fragment即可替代,当需要使用该Fragment 时候采取加载显示,提高性能。
5. List 与 Map 区别
1) list 集合中元素是有顺序的, map 中存储数据是没有顺序的,其键不可以重复,但是值可以重复.
2) list 集合以单列数据存储的, map是以键值对的方式存储数据的.
3) list 继承自collection 接口,map 是顶尖级的接口了.
4. 连续启动同一个service,执行生命周期流程
当一个service启动第一次时候,先要创建该service,onCreate(), 然后会执行onStart() ,onStartCommand() . 多次点击执行同一个service时候, 不会再执行onCreate(),而是
执行onStartCommand(),所以生命周期为: oncreate() ,onStart(),,onStartCommand(), onStartCommand(), onStartCommand()
3. 启动service有几种方法?有什么区别?
启动service方法有两种:一种是startService(), 另一种是bindService(),
startService()启动service, 访问者与该service之间没有关联,访问者退出了,service仍然执行.
bindService() 启动service,访问者与该service之间绑定在一起的,访问者退出了,service也就终止了.
2. 请举出两个使用BroadCastReceiver的情景
例如: 来电来短信时候广播监听,插拔sim卡时候广播监听提示, 亮屏,灭屏,开机启动应用等。
1. 指出以下程序错误地方
public class Dostring{
void dosomestring(){
private String str="";
int i=str.length();
}
}
错误地方: 在方法中,修饰变量不可以用private , 即为,局部变量不需要修饰符,只能用final ,其它都无效,因为局部变量作用范围仅仅在当前方法中,无需要其它修饰。
abstract class Name{
private String name;
public abstract boolean isstetbean(String name){}}
错误地方:抽象类中,定义抽象方法不可以有实体出现,即方法中不能出现大括号