我的上上一篇博客也用到了同样的标题,是的,我喜欢这样的名字,因为我现在就是这样的,我在高速度的前进,我会不顾一切的高速度的前进,这已经成为习惯!
android的一个特殊的类Handler,说他特殊,特殊到什么地方呢?Handler中文的意思是"处理"的意思,在android中处于android.os包中,其实编程处处将就的是学问,就说这os吧!是"Operating System"操作系统的简写,很好,处于这样的包下面的类,自然是与操作系统有关的呢!但是很多的时候呢?我们只关心的是这个类里面有些什么方法,能为我们做些什么!其说是与java中的线程类似吧!不是准确的,但是与线程是成对出现的,既然是处理嘛!肯定要有处理的对象,java中处处皆是对象,不错,这个类不是抽象的类,有无参的构造方法,其实看看Handler()这是缺省的构造方法,把Handler和当前的线程队列联系起来,Handler(Handler.Callback callback)解释是什么呢?就是说把Hander和当前的线程联系起来采用回调接口来实现 处理消息,Handler(Loop loop),用来代替缺省的队列,Handler(Loop loop,Handler.Callback callback)这无疑就是第二三方法的合并,post(Runnable r)岂不看这个方法需要的参数,主要的是怎么去用的问题了,其解释是把Runnable增加到消息队列,这里的增加到消息队列中,至于怎么增加,为什么增加,增加后成了什么样子,我们需要关心吗?更多的时候我们更关心的这个参数传递的是什么!线程,明显是一个接口,这也似乎不是中点,是的,或者说这还不是问题之所在吧!这时视乎就要把自己的思维跟进到线程里面了,是cpu的时间片的,可以有多线程,可以有线程池,还有线程的并发库,但是这些,什么是有用的呢?其实这些都是从程序的效率上来讲的,最根本的一个原因是什么呢?是人们不会无缘无故的去启动线程,就是有些方法要传一个线程进去,那也不是终点,终点是这个线程是干啥的!主要的是void方法里面的代码!这里可以是一个对象,可以是一些方法,总之这里才是终点和重点,postDelayed(Runnable r, long delayMillis)这个方法,就是告诉程序,多少时间去执行一下前面的线程,
深刻的理解了这些以后,就好好的想想是叫做自定义动画,在android中,很多的时候需要自定义动画,很多 的时候是继承了View 这类,其实有一个惯性思路,要实现,一个类里面必须有构造方法,除了工具类以外,为什么呢?因为工具类还需要创建对象的话太浪费内存和时间了,效率不高,其实在android中大量的使用的内部类,为什么使用内部类,其原因很简单,如果不用内部类,耗时间,不管是内部类,都需要的是构造方法,类是方法和属性的集合,要定义一个类或者是调用API中的类,一定有用武之地,一定有的是什么呢?实现某种功能,或许不止一个功能,是方法和属性的集合,自然就是对方法和属性的封装,而是通过引用去调用改类的方法,这就是封装!也是java中最重要的思想,聪明的你一定不会认为了实现一个小小的功能而下很多的代码而感到多余了吧?记住这是封装!