1、Handler是什么
Handler通过发送和处理Message和Runnable对象来关联相对应线程的MessageQueue
2、Handler使用方法
3、Handler工作原理
4、Handler引起的内存泄漏
原因:非静态内部类持有外部类的匿名引用,导致Activity无法释放
解决:
Handler内部持有外部Activity的弱引用
Handler改为静态内部类
Handler.removeCallback()
##二、AsyncTask面试题
1、AsyncTask是什么
它本质上就是一个封装了线程池和Handler的异步框架
2、AsyncTask使用方法
三个参数
Params:表示后台任务执行时的参数类型,该参数会传给AysncTask的doInBackground()方法
Progress:表示后台任务的执行进度的参数类型,该参数会作为onProgressUpdate()方法的参数
Result:表示后台任务的返回结果的参数类型,该参数会作为onPostExecute()方法的参数
五个方法
onPreExecute():异步任务开启之前回调,在主线程中执行
doInBackground():执行异步任务,在线程池中执行
onProgressUpdate():当doInBackground中调用publishProgress时回调,在主线程中执行
onPostExecute():在异步任务执行之后回调,在主线程中执行
onCancelled():在异步任务被取消时回调
3、AsyncTask工作原理
4、AsyncTask引起的内存泄漏
原因:非静态内部类持有外部类的匿名引用,导致Activity无法释放
解决:
AsyncTask内部持有外部Activity的弱引用
AsyncTask改为静态内部类
AsyncTask.cancel()
5、AsyncTask生命周期
在Activity销毁之前,取消AsyncTask的运行,以此来保证程序的稳定
6、AsyncTask结果丢失
由于屏幕旋转、Activity在内存紧张时被回收等情况下,Activity会被重新创建,此时,旧的AsyncTask持有旧的Activity引用,这个时候会导致AsyncTask的onPostExecute()对UI更新无效
7、AsyncTask并行or串行
##三、HandlerThread面试题
1、HandlerThread产生背景
当系统有多个耗时任务需要执行时,每个任务都会开启一个新线程去执行耗时任务,这样会导致系统多次创建和销毁线程,从而影响性能。为了解决这一问题,Google提供了HandlerThread,HandlerThread是在线程中创建一个Looper循环器,让Looper轮询消息队列,当有耗时任务进入队列时,则不需要开启新线程,在原有的线程中执行耗时任务即可,否则线程阻塞
2、HanlderThread的特点
##四、IntentService面试题
** 1、IntentService是什么**
IntentService是继承自Service并处理异步请求的一个类,其内部采用HandlerThread和Handler实现的,在IntentService内有一个工作线程来处理耗时操作,其优先级比普通Service高。当任务完成后,IntentService会自动停止,而不需要手动调用stopSelf()。另外,可以多次启动IntentService,每个耗时操作都会以工作队列的方式在IntentService中onHandlerIntent()回调方法中执行,并且每次只会执行一个工作线程
2、IntentService使用方法
##五、视图工作机制面试题
Android进阶——Android视图工作机制之measure、layout、draw
http://blog.csdn.net/qq_30379689/article/details/54588736
Android事件分发机制之dispatchTouchEvent、onInterceptTouchEvent、onTouchEvent
http://blog.csdn.net/qq_30379689/article/details/53967177
##六、ListView面试题
** 1、ListView是什么**
ListView是能将一个数据集合以动态滚动的方式展示到用户界面上的View
2、ListView的RecycleBin机制
由于题目很多整理答案的工作量太大,所以仅限于提供知识点,详细的很多问题和参考答案我都整理成了 PDF文件
CodeChina开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》
.csdn.net/m0_60958482/android_p7)**
[外链图片转存中…(img-ThiOTohQ-1630837195713)]
[外链图片转存中…(img-6269yEKj-1630837195715)]