但是使用设置0s为什么就可以呢?这是什么原理?0秒和不使用handler有什么区别?难道就差几行代码的速度?
您的每一个用心回答,都会让这个世界变得更美好一些!
因为你post的时候为0,也不一定争取到CPU的执行时间呀。
如果你这个handler是线程的。那么你执行你的post里的内容和直接调用都是同一个线程,只有一个线程。
你postDelayed,其实是进了队列里,进了队列里,还要进行排序,如果此时没有轮询的,会唤醒轮询器。然后等待下一次得到执行权的时候才去执行。
这个问题,你真不的应该犯。如果是空指针了,肯定要解决时序的问题,而不是通过这种postDelay的方式,这个方式不保险,也不安全,不优雅。
有空去看看handler的源码,面试必问的。
因为你post的时候为0,也不一定争取到CPU的执行时间呀。
如果你这个handler是线程的。那么你执行你的post里的内容和直接调用都是同一个线程,只有一个线程。
你postDelayed,其实是进了队列里,进了队列里,还要进行排序,如果此时没有轮询的,会唤醒轮询器。然后等待下一次得到执行权的时候才去执行。
这个问题,你真不的应该犯。如果是空指针了,肯定要解决时序的问题,而不是通过这种postDelay的方式,这个方式不保险,也不安全,不优雅。
有空去看看handler的源码,面试必问的。