Android 在thread中Toast不能顯示的問題

第一種方法:

改寫代碼前是:

Toast.makeText(getApplicationContext(),"test",Toast.LENGTH_LONG).show();

改寫后:

Looper.prepare();

Toast.makeText(getApplicationContext(),"test",Toast.LENGTH_LONG).show();

Looper.loop();

如果不是在主線程中又開啟了新線程的話,一般都會碰到這個問題。

原因是在創(chuàng)建新縣城的時候默認(rèn)情況下不會去創(chuàng)建新的MessageQueue。

第二種方法:

Handler?handler?=?new?Handler()?{??

????@Override??

????public?void?handleMessage(Message?msg)?{??

????????//?TODO?Auto-generated?method?stub??

????????if?(msg.what?==?0)?{??

????????????Toast.makeText(getApplicationContext(),?"test",?Toast.LENGTH_LONG).show();??

????????}??

????????super.handleMessage(msg);??

????}??


};??

Message?msg?=?handler.obtainMessage();??

msg.what?=?0;??

handler.sendMessage(msg);??

線程里面不能進(jìn)行UI操作的,可以在線程里面用handler發(fā)送信息,然后再顯示UI,比如就把你的toast改成handler.sendEmptyMessage()。。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言:toast再常見不過,但是一個小小的toast居然內(nèi)有乾坤,呵(w)呵(t)呵(f) 源碼如下: publi...
    super超_9754閱讀 1,527評論 0 0
  • Android中的消息機(jī)制,消息的發(fā)送和接收過程以及與線程之間的關(guān)系。雖然我們經(jīng)常使用這些基礎(chǔ)的東西,但對于其內(nèi)部...
    Sunny君907閱讀 703評論 0 1
  • Toast是一個View視圖,快速的為用戶顯示少量的信息。Toast在應(yīng)用程序上浮動顯示信息給用戶,它永遠(yuǎn)不會獲得...
    cxm11閱讀 582評論 0 4
  • 想要“佛系”不容易 “佛系”對于我真是一個新名詞,剛開始以為是信佛人的俗語,和佛有關(guān)的事情,我參不透,可想了解。 ...
    碧晴天閱讀 635評論 1 2
  • 這樣浩浩蕩蕩11個大人和兩個小朋友的家族旅行好像還是第一次。當(dāng)提出這個想法到具體成行也不過一個月時間,看來我家效...
    米菲的游樂園閱讀 347評論 0 1

友情鏈接更多精彩內(nèi)容