android部分面试题
很不幸,今年是一个非常不平平凡的年,由于种种原因,现在加入找工作的行列中,记录面试中所问到的基础与技术问题。 1、内存泄露如何查看和解决 概念:有些对象只有有限的生命周期,当他们的任务完成之后,它们将被垃圾回收,如果在对象的生命周期本该结束的时候,这个对象还被一系列的引用,着就会导致内存泄露。 解决方法:使用开源框架LeakCanary检测针对性解决 常见的内存泄露有: 单例造成的内存泄露,例如单例中的Context生命周期大于本身Context生命周期 线程使用Hander造成的内存卸扣,当activity已经结束,线程依然在运行更新UI 非静态类使用静态变量导致无法回收释放造成泄露 WebView网页过多造成内存泄露 资源未关闭造成泄露,例如数据库使用完之后关闭连接 2、Service启动方式 1.startService ①.定义一个类继承service ②.在manifest.xml文件中配置该service ③.使用context的startService(intent)启动该service ④.不再使用时,调用stopService(Intent)停止该服务 2.bindService ①.创建bindService服务段,继承自service并在类中,创建一个实现binder接口的实例对象并提供公共方法给客户端调用 ②.从onbind()回调方法返回此binder实例