????Message Queue??

????Message Queue???????????У???????????Handler???????????Android?????????????????????UI thread???????????????????У????????Looper.myQueue()????????????????У??????????????Щ????????activities??broadcast receivers ??????????????????????д???Handler??UI thread????

???????Handler??????????????????????????????Runnable??????????Handler????????????????????????????й????

????Looper?????????Handler??????????????????????????????????????Handler??????????Looper??Looper???????????С?Looper???????????????????????е?Handler??Handler?????????????handleMessage???д????

??????????£?

public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.main);
   editText = (EditText) findViewById(R.id.weather_city_edit);
   Button button = (Button) findViewById(R.id.goQuery);
   button.setOnClickListener(this);

   Looper looper = Looper.myLooper();  //??????????Looper????????????????UI???????????Looper.getMainLooper()???
    messageHandler = new MessageHandler(looper);  //???????????????????Looper????? Handler????????????Looper
}

public void onClick(View v) {
   new Thread() {
      public void run() {
          Message message = Message.obtain();
          message.obj = "abc";
          messageHandler.sendMessage(message);  //???????
       }
   }.start();
}

Handler messageHandler = new Handler {
   public MessageHandler(Looper looper) {
      super(looper);
  }
   public void handleMessage(Message msg) {
      setTitle((String) msg.obj);
   }
}

?????????????????????activity?????onCreate??onStart??onResume??????UI????????????Click?????????????????Handler Message????

???????????????????????????????????н????????handler???????????????????handler????UI???????????????????UI???????UI??????????????handler??????????handler??UI?????????????????UI???????????????檔

???????????handler???????????????????????????????????????????????android????AsyncTask?????????????