android 面试题汇总 1、 Fragment 生命周期 Activity 直接影响它所包含的 fragment 的生命周期,所以对 activit y 的某个生命周期方法的调用也会产生对 fragmen t 相同方法的调用。例如:当 activity 的 onPause() 方法被调用时,它所包含的所有的 fragment 们的 onPause() 方法都会被调用。 Fragment 比 activity 还要多出几个生命周期回调方法, 这些额外的方法是为了与 activity 的交互而设立,如下: onAttach() 当 fragment 被加入到 activity 时调用( 在这个方法中可以获得所在的 activity )。 onCreateView() 当 activity 要得到 fragment 的 layout 时,调用此方法, fragmen t 在其中创建自己的 layout( 界面)。 onActivityCreated() 当 activity 的 onCreated() 方法返回后调用此方法。 onDestroyView() 当 fragment 的 layout 被销毁时被调用。 onDetach() 当 fragment 被从 activity 中删掉时被调用。一旦 activity 进入 resumed 状态(也就是 running 状态),你就可以自由地添加和删除 fragmen t了。因此, 只有当 activit y在 resume d 状态时, fragment 的生命周期才能独立的运转,其它时候是依赖于 activity 的生命周期变化的。 anattach-oncreate-oncreateview-onActivityCreated-onstart-on Resume-onPause-onstop-onDestroyView-onDestroy-onDetach 2、///// 面试试题///// 接启动的是这回 onCreate() 里包括参数 savedInstanceState 。为什么要用 ContentProvider? 它和 sql 的实现上有什么差别? 使用 ContentProvider 可以将数据共享给其他应用,让除本应用之外的应用也可以访问本应用的数据。它的底层是用 SQLite 数据库实现的, 所以其对数据做的各种操作都是以 Sql 实现, 只是在上层提供的是 Uri AIDL 的全称是什么? 如何工作? 能处理哪些类型的数据? AIDL 是一种接口定义语言,用于约束两个进程间的通信规则,供编译器生成代码,实现 Android 设备上的进程间通信。进程之间的通信信息首先会被转换成 AIDL 协议消息, 然后发送给对方,对方受到 AIDL 协议消息后再转换成相应的对象。 AIDL 支持的类型包括 Java 原生类型和 String,List,Map,CharSequence, 如果使用自定义类型,必须实现 Parcelable 接口启动一个程序, 可以主界面点击图标进入, 也可以从一个程序中跳转过去,二者有什么区别? 从主界面启动一个应用程序是通过快捷方式直接调 mainActivity 启动的, 从其他应用程序调用需要隐式的通过 Action 或者在 Intent 中需要使用 setClasss() ,且要写明包路径. 如何判断是否有 SD卡? 在程序中访问 SDCard, 需要申请访问 SDCard 的权限在 中加入访问 SDCard 的权限如下: < !-- 在 SDCard 中创建与删除文件权限--> < uses-permission android:name="" /> < !-- 往 SDCard 写入数据权限--> < uses-permission android:name="" /> ().equals( IA_MOUNTED) () 方法用于获取 SDCard 的状态, 如果手机装有 SDCard, 并且可以进行读写, 那么方法返回的状态等于 。 Android 系统中 GC 什么情况下会出现内存泄露呢? 出现情况: 1. 数据库的 cursor 没有关闭 2. 构造 adapter 时,没有使用缓存 conten
android 面试题汇总 来自淘豆网m.daumloan.com转载请标明出处.