为什么handler用来可以直接加上Runnable就可以去更新一个歌曲播放进度的进度条可是为什么要在handler里边去连接服务器就不行呢??用thread就可以咧?而且不是说handler加上Runnable就可以启动一个异步线程么 为什么打印的线程还是iu线程咧??要是要用socket创建客服端去连接服务器怎么做咧??怎么用handler去连接呢?

解决方案 »

  1.   

    handler是在UI线程,而thread是新开的线程,你可以把耗时操作丢在thread里,当执行完后发送一个消息通知handler,让handler去更新UI
      

  2.   

    耗时的操作都放在新开的thread中,handler.post(Runnable)不是启动一个线程,而是相当于一个启动任务的概念,或者说启动一个方法吧,这个方法还是在handler所在的线程中去执行的,handler所在线程异步的去执行runable的run方法,socket连接服务器可以新开一个线程去连接,连接上或是没连接上可以用handler.sendMessage(Message)告诉给主线程。