12 回答

TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超7個(gè)贊
Android
前幾天面試遇到的問題:更新UI在哪個(gè)線程,為什么?
還有面試遇到這個(gè)問題嗎?由于回答的不完整,沒通過。。
一般是在主線程,因?yàn)樵谧泳€程直接更新UI,通常會(huì)拋出如下異常:Only the original thread that crated a view hierarchy can touch its views。?一般我們都是利用子線程中發(fā)出Message,然后在主線程中通過Handler通知主線程的UI Thread來更新界面。 ??
不過也有其它的方法:
<1>.最簡單的onRunUIThread(); ? ? ? ? ?
<2>.可以把更新UI的操作放在一個(gè)點(diǎn)擊事件里 ? ? ? ? ?
<3>.還有的是AsyncTask可以為我們提供一個(gè)線程的管理服務(wù),里面的回調(diào)方法onPreExecute(),onPostExecute()和 ? ? ? ? ? onProgressUpdate()都是在UI線程調(diào)用,這樣可以把子線程的更改數(shù)據(jù)傳給它們。
(有去面試android開發(fā)的親們可以參考下哦)
上個(gè)月寫的一個(gè)理財(cái)通的項(xiàng)目:
遇到的問題:從文本框里面輸入的數(shù)據(jù)無法導(dǎo)入到數(shù)據(jù)庫中當(dāng)中;
自己的理解:最后找到是viewpage在設(shè)置adapter的時(shí)候find了一次之后又find了一次,導(dǎo)致從文本框里面獲得的內(nèi)容????????都是空,對于數(shù)據(jù)庫語言錯(cuò)誤,我把他放在命令行里面操作,仔細(xì)查改
學(xué)了幾個(gè)月,正在找工作,喜歡的幫忙點(diǎn)個(gè)贊,謝謝;

TA貢獻(xiàn)81條經(jīng)驗(yàn) 獲得超57個(gè)贊
恩,前幾天在寫一個(gè)項(xiàng)目遇到一個(gè)小障礙,需求是要在自定義View的子類中想要拿到本地?cái)?shù)據(jù)跟一個(gè)Activity做數(shù)據(jù)交互切且動(dòng)態(tài)更新 ?然后我自己羅列了幾種方式,通過Intent+Bundle進(jìn)行數(shù)據(jù)捆綁傳遞、Handler異步消息處理、BroacastReceiver發(fā)送廣播接收廣播、SharePreference寫入本地?cái)?shù)據(jù)接著讀取本地?cái)?shù)據(jù)。因?yàn)榇a有點(diǎn)冗雜且可維護(hù)性差,最后選擇用在OOP思維世界中的一句話“世間萬事萬物皆為對象”。通過在子view自己定義接口類(如果你自己寫過類似onClickListener這種自定義接口的話你就知道了)然后在Acitivty去實(shí)現(xiàn)這個(gè)接口類做具體操作,功能實(shí)現(xiàn)了代碼也清爽多了~
- 12 回答
- 38 關(guān)注
- 8640 瀏覽
添加回答
舉報(bào)