[Android]當透過非GUI Thread更新畫面時
最近開始在玩Android了,雖然不知道來不來的及完成想做的東西,但是就邊寫邊順便把一些東西筆記一下。Android本身算蠻好寫的,文件也還算充足,但是不知道是不是個人問題,總覺得每次要查資料都花我非常多時間有點難找,我在寫其他東西時感覺也不會花到那麼多時間。另外推薦一個英文語系網站anddev.org,算是蠻多資訊可以找的,當然如果是中文使用者也歡迎到jJavaWorld@TW一起討論,現在水有點少orz...。
這次遇到的問題就是非GUI Thread該怎樣更新畫面的問題,是因為像Swing有SwingWorker了,所以我就想說應該也有類似的東西吧,不然如何在非GUI Thread內更新畫面呢?後來在anddev.org查到了這個範例Pizza Timer, 簡單說就是他有提供一個Handler類別,透過發訊息給Handler的方式告知他更新畫面。所以code會類似:
其實這樣看有點奇怪,為何Handler只要收message就可以正確運作,可以看一下他的javadoc提到"When you create a new Handler, it is bound to the thread / message queue of the thread that is creating it -- from that point on, it will deliver messages and runnables to that message queue and execute them as they come out of the message queue.",以及這頁Developing Responsive Applications。所以看來這樣應該就可以了!?如果有更好的方式歡迎告知:)。
解決了我的問題,感謝分享
由...發表 alderis on 八月 01, 2011 at 12:23 上午 CST #