???????Android??????Thread?????????Looper??Looper???????Thread????????????У?????????? Can't create handler inside thread ???? ??????????????????Looper??Handler????????????????????????????Android?????????Thread?????HanderThread?????????????????HandlerThread?????п??????getLooper??????????Looper????????????????????????Looper??????????Handler??????????????????????Looper????????????????Looper.prepare???????????????????????????????????????????Looper.release??????

????Looper??MessageQueue????????????MessageQueue??????????Looper???????Looper?????????????prepare?????????????????Looper???????????????????????Looper.myLooper()????????????Looper????

???????????Looper??????????????????MessageQueue???????????????????Looper?????????????????MessageQueue??????????????????Message??????????????????????Looper????(???prepare????)????????????????????Looper?????MessageQueue????????

????Looper??MessageQueue?????Message???????Handler??handleMessage???д????????????????Message.recycle()???????Message Pool?С?

????Message

????????Android??Handler????????Щ????????Bundle?????????String??Integer???Blob??????????????????????????Handler????? sendEmptyMessage??sendMessage?????????????Bundle????Handler????????????Handler????????д????handleMessage(Message msg) ???ж?????msg.what????????????????Bundle????????Handler?????UI????е??????????????2?????????Handler?????й????????sendXXXX?????????£???????postXXXX??????????Щ??Win32?е?????????£???????????????????????????????

????Message?????????Message Queue?е??????????Message Queue?а??????Message?? Message??????????????????Message???????????obtain()???÷????ж??????汾??????;??????????????????????????μ?????????????Message Pool(?????)?п?????п????Message????????????????????????????????Message Pool????п????Message?????????????????????????Message????????removeMessages()?????Message??Message Queue?????????????Message Pool?С?????????????????????????Handler?????obtainMessage()??????Message?????

????sendEmptyMessage(int what)

????final boolean

????sendEmptyMessageAtTime(int what?? long uptimeMillis)

????final boolean

????sendEmptyMessageDelayed(int what?? long delayMillis)

????final boolean

????sendMessage(Message msg)

????final boolean

????sendMessageAtFrontOfQueue(Message msg)

????boolean

????sendMessageAtTime(Message msg?? long uptimeMillis)

????final boolean

????sendMessageDelayed(Message msg?? long delayMillis)

????MessageQueue

??????????????????????壬???????????У????????????????????????????????MessageQueue???????

?????????????????????????????????MessageQueue???????????Looper??????????MessageQueue???й??????????????????????????Looper??????Looper??????????????????????Message Queue?????????????????????????Looper??????????????????prepare??????????

????java.util.concurrent???????

??????????????Java???????????????Concurrent????е???????????JDK 1.5????????????????????????豸????????????????????Android?????????????Task?????????????Android??????????????????????

????Task???AsyncTask

??????Android?л?????????б????????????????Task???AsyncTask???????????п???????????Concurrent??????????????????????????Щ?????? ????漰????????????????????к????????????????????????????????