欢迎来到天天文库
浏览记录
ID:17951654
大小:39.25 KB
页数:33页
时间:2018-09-11
《android 面试题汇总》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、android面试题汇总1、Fragment生命周期Activity直接影响它所包含的fragment的生命周期,所以对activity的某个生命周期方法的调用也会产生对fragment相同方法的调用。例如:当activity的onPause()方法被调用时,它所包含的所有的fragment们的onPause()方法都会被调用。Fragment比activity还要多出几个生命周期回调方法,这些额外的方法是为了与activity的交互而设立,如下:onAttach()当fragment被加入到activity时调用(在这个方法中可以获得所在的ac
2、tivity)。onCreateView()当activity要得到fragment的layout时,调用此方法,fragment在其中创建自己的layout(界面)。onActivityCreated()当activity的onCreated()方法返回后调用此方法。onDestroyView()当fragment的layout被销毁时被调用。onDetach()当fragment被从activity中删掉时被调用。一旦activity进入resumed状态(也就是running状态),你就可以自由地添加和删除fragment了。因此,只有当a
3、ctivity在resumed状态时,fragment的生命周期才能独立的运转,其它时候是依赖于activity的生命周期变化的。anattach-oncreate-oncreateview-onActivityCreated-onstart-onResume-onPause-onstop-onDestroyView-onDestroy-onDetach2、/////面试试题/////接启动的是这回onCreate()里包括参数savedInstanceState。 为什么要用ContentProvider?它和sql的实现上有什么差别? 使用
4、ContentProvider可以将数据共享给其他应用,让除本应用之外的应用也可以访问本应用的数据。它的底层是用SQLite数据库实现的,所以其对数据做的各种操作都是以Sql实现,只是在上层提供的是Uri AIDL的全称是什么?如何工作?能处理哪些类型的数据? AIDL是一种接口定义语言,用于约束两个进程间的通信规则,供编译器生成代码,实现Android设备上的进程间通信。 进程之间的通信信息首先会被转换成AIDL协议消息,然后发送给对方,对方受到AIDL协议消息后再转换成相应的对象。 AIDL 支持的类型包括Java原生类型和Strin
5、g,List,Map,CharSequence,如果使用自定义类型,必须实现Parcelable接口 启动一个程序,可以主界面点击图标进入,也可以从一个程序中跳转过去,二者有什么区别? 从主界面启动一个应用程序是通过快捷方式直接调mainActivity启动的,从其他应用程序调用需要隐式的通过Action或者在Intent中需要使用setClasss(),且要写明包路径. 如何判断是否有SD卡? 在程序中访问SDCard,需要申请访问SDCard的权限 在AndroidManifest.xml中加入访问SDCard的权限如下:
6、-在SDCard中创建与删除文件权限--> Environment.getExternalStorageState().equals(Enviroment.MEDIA_MOUNTED) Envi
7、ronment.getExternalStorageState()方法用于获取SDCard的状态,如果手机装有SDCard,并且可以进行读写,那么方法返回的状态等于Environment.MEDIA_MOUNTED。 Android系统中GC什么情况下会出现内存泄露呢? 出现情况: 1.数据库的cursor没有关闭 2.构造adapter时,没有使用缓存contentview 衍生listview的优化问题----减少创建view的对象,充分使用contentview,可以使用一静态类来优化处理getView的过程 3.Bitmap对
8、象不使用时采用recycle()释放内存 4.Activity中的对象的生命周期大于Activity 调试方法:DDMS---->HE
此文档下载收益归作者所有