面试知识点

1、Handler:
http://blog.youkuaiyun.com/lmj623565791/article/details/38377229/
handler的取消:在onDestroy()里handler.removeCallback()
handler防止内存泄漏:声明static class MyHandler为静态内部类,使用弱引用方式引入context。
handler子线程中创建handler,需在子线程中手动调用Looper.prepare()-new handler-sendMessage-Looper.loop()

ThreadLocal:https://www.zhihu.com/question/23089780

2、AsyncTask:
AsyncTask的取消:在onDestroy()里AsyncTask.cancel()方法。
3.intentService:
本质是封装了handlerThread和handler的异步框架
耗时任务完成后可自己结束,无需调用stopService或stopSelf方法。
在onHandleIntent接收intent,可做耗时操作。
startService调用多次时只会有一个intentService实例,会按顺序串行依次执行这多次任务。

3、invalidate、postInvalidate和requestLayout区别:
使用invalidate重绘当前视图是不会再次执行measure和layout流程的。因为视图没有强制重新测量的标志位,而且大小也没有发生过变化,所以这时只有draw流程可以得到执行。
如果你希望视图的绘制流程可以完完整整地重新走一遍,就不能使用invalidate()方法,而应该调用requestLayout()了。
postInvalidate这个方法与invalidate方法的作用是一样的,都是使View树重绘,但两者的使用条件不同,postInvalidate是在非UI线程中调用,invalidate则是在UI线程中调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值