天天看點

android handler前言關鍵詞android.os.Handler關于POST參考文獻系列索引

  Android.os.Handler涉及較多的知識點,我把一些關鍵詞列舉在下面,将主要介紹Handler:

  Handler在android裡負責發送和處理消息。它的主要用途有:

  1)按計劃發送消息或執行某個Runnanble(使用POST方法);

  2)從其他線程中發送來的消息放入消息隊列中,避免線程沖突(常見于更新UI線程)

  利用Timer 編寫一個倒計時程式,程式使用Timer和TimerTask來完成倒計時,同時使用sendMessages方法發送消息,然後在HanleMessage裡更新UI。

Activity布局:

android handler前言關鍵詞android.os.Handler關于POST參考文獻系列索引

Layout

這裡使用TextView 來顯示倒計時的時間變化,兩個按鈕用于控制時間的開始和停止。SeekBar主要是用于檢視線程是否被阻塞(阻塞時無法拖動)。

android handler前言關鍵詞android.os.Handler關于POST參考文獻系列索引

onCreate

android handler前言關鍵詞android.os.Handler關于POST參考文獻系列索引

發送消息

實作Button按鈕的事件處理以此進入倒計時操作。這裡使用的Timer 來執行定時操作(其實我們完全可以另起一個線程)。Task類繼承了TimerTask類,裡面增加了一個任務處理接口來實作回調模式,應此Activity需要實作該回調的接口 ITaskCallBack(這樣做是因為我比較不喜歡内部類的編寫方法)。

android handler前言關鍵詞android.os.Handler關于POST參考文獻系列索引

ICallBack接口和Task類

這是Java的回調函數的一般寫法。

android handler前言關鍵詞android.os.Handler關于POST參考文獻系列索引

實作CallBack

android handler前言關鍵詞android.os.Handler關于POST參考文獻系列索引

  可以看到在onCreate 方法中線程的ID是1(UI線程) 這與 HandlerMessage 進行消息處理時是所作的線程ID是一樣的,而消息發送的線程ID則為8非UI線程。

android handler前言關鍵詞android.os.Handler關于POST參考文獻系列索引

Activity類

android handler前言關鍵詞android.os.Handler關于POST參考文獻系列索引

自定義的線程類

這裡繼承了Thread類,也可以直接實作 Runnable接口。

  Post的各種方法是把一個Runnable發送給消息隊列,它将在到達時進行處理。

android handler前言關鍵詞android.os.Handler關于POST參考文獻系列索引

POST

使用POST的方式 是将Runnable 一起發送給處理的線程(這裡為UI),如果Runnable的操作比較耗時的話那線程将進入阻塞狀态。可以看到先運作 Runnable的Run方法 然後在進入 HandleMessage() 。我還嘗試了另一種寫法,将TimerThreadPOST過去,運作結果是一樣的。

android handler前言關鍵詞android.os.Handler關于POST參考文獻系列索引

代碼

可以說POST的各種方法主要是用于 “按計劃發送消息或執行某個Runnanble(使用POST方法)”。

  

上一篇: java socket

繼續閱讀