[問題] Android Handler管理UI的寫法

作者: pauliaia   2015-06-18 15:03:31
想問各位老手
在Android當中 會有handler 寫在 activity上面去控制activity UI
目前我也是使用這個方法
class myActivity extends Activity {
class mHandler extends Handler{
@Override
public void handleMessage(Message msg) {
switch ......
}}}
然後把handler傳給需要控制UI的物件 sendmessage 改UI
我的問題:
我在Activity裡面需要寫控制UI handler
可是我發現目前Activity 變得有點髒亂 原因是 太多UI需要動 function也很多
我想到的辦法是
額外再創一個class 繼承Handler 可能叫ActivityHandler 然後建構子放上View參數
並放init() 去findViewByID
可是這樣寫好嗎??
還是可以用interface ?
請指教 感恩
作者: mshockwave (夏克維夫)   2015-06-18 15:29:00
會很亂是因為你開很多thread嗎?main thread中操作UI不用用到handler吧
作者: abccbaandy (敏)   2015-06-18 15:33:00
databinding
作者: pauliaia   2015-06-18 16:02:00
有多個thread 在控制 圖像撥放但是也有非thread object直接用message 控制ui 因為我不想再物件控制UI 感覺很亂
作者: htury (冰點)   2015-06-18 16:11:00
有動到ui的,建議用asyncTask比較省事
作者: pauliaia   2015-06-18 17:41:00
歪樓了XD 我主要是說handler的部分 要怎改寫因activity很大
作者: visor (~~~~~~~~~~)   2015-06-18 18:10:00
runOnUiThread
作者: givemepass (λ)   2015-06-18 20:41:00
直接new Hanlder了 UI部分再用runOnUiThread
作者: wendly777 (小水)   2015-06-19 00:03:00
建議可以用RxJava + lambda
作者: KeySabre (KeySabreur)   2015-06-19 01:57:00
可能要先釐清怎樣覺得髒亂,想改成怎樣才叫不髒亂我個人是不喜歡把handler傳出去外面,傾向定義interface…
作者: JULONE780701 (亞)   2015-06-19 09:20:00
寫法跟你很像,但我不完全是為了改UI而用主要是為了UI/background Thread的切換把使用動機改成任務取向,應該會比較漂亮
作者: givemepass (λ)   2015-06-19 12:13:00
直接new Thread了 UI部分再用runOnUiThread 打錯

Links booklink

Contact Us: admin [ a t ] ucptt.com