1樓:獅子
我想你說的區別應該是指:message在使用時是new message(),obtainmessage在使用時是handler.obtainmessage()吧。
一個比較好理解的區別是obtainmessage不需要重新new出物件,而是直接取自訊息池,節省了記憶體開銷;另外一個重要的用法是,涉及到自定義thread時,建議使用obtainmessage,因為使用message可能會導致null異常或其他異常。
2樓:逆長小白菜
前幾天需要實現一個乙太網功能就看了乙太網的原始碼部分,看見了原始碼部分在訊息處理時,發現有一些不同的地方:
平時我在處理訊息時:
1、首先建立handler物件:
private handler handler = new handler()
};};
2、然後是訊息處理:
private void testhandlermessage()
但是我看別人原始碼部分是是這樣處理的:
1、首先建立handler物件:
private handler handler = new handler()
};};
2、然後是訊息處理:
private void obtainmessagetest()
通過比較我們會發現,這兩種獲取message的例項的方法不一樣,於是我看了原始碼,果然不一樣:
檢視obtainmessage()原始碼:
圖1:進入obtain方法:
圖2:再進入objtain方法:
圖3:進入message方法:
圖4:總結:
上面的圖3中obtain方法的註釋中說得很明白:從整個messge池中返回一個新的message例項,在許多情況下使用它,因為它能避免分配新的物件
如果是這人的話,那麼通過呼叫obtainmessage方法獲取message物件就能避免建立物件,從而減少記憶體的開銷了。
求安卓大神,android中handler中的obtainmessage()
3樓:匿名使用者
就是把四個引數全部傳遞給ss啊
4樓:
就是你的message傳給handler的值,message msg = handler.obtainmessage();
msg.arg1 = 1;
msg.arg2 = 2;
msg.what = 3;
msg.obj = object;
在handler中接收
handler handler = new handler()};
亭和庭和潭和螺和諳怎麼組詞和拼音
亭的拼音 t ng 庭的拼音 t ng 潭的拼音 t n 螺的拼音 lu 諳的拼音 n 組詞 亭 亭亭 亭午 亭子 崗亭 長亭 郵亭 書亭 亭勻 同亭 蘭亭 山亭 龍亭 街亭 梅亭 亭長 溪亭 雲亭 羅亭 茶亭 風亭 亭侯 石亭 皋亭 亭軒 新亭 紅亭 庭 家庭 庭院 法庭 門庭 庭審 庭園 徑庭 ...
蒙的偏旁和拼音和筆畫和組詞和結構?
蒙,偏旁部首為草字頭 艹 總共13畫,除去部首10畫,上中下結構。蒙 meng一聲 矇騙 矇在鼓裡 瞎蒙等詞。句子 這件事過去很久了,但他父親還被矇在鼓裡,不知緣由。考試時間馬上到了,小明瞎蒙了幾道選擇題,碰運氣。蒙 meng二聲 啟蒙 承蒙 細雨濛濛。句子 隨著時代發展,傳統文化已走進了啟蒙教育的...
衝的音序和音節和部首,和結構和組詞是什麼
衝是多音字,音節是ch ng組詞為衝擊,ch ng組詞為衝子,音序為c,是左右結構,部首為冫。能的音序音節部首結構組詞,是什麼?能的音序是 n 能的音節是 neng 能的部首是 厶 能的結構是 左右結構 能的組詞可以組 可能 不能 才能。您好,慕字的音序,音節,部首,結構,組詞如下 慕 音序 m 音...