android之Can't create handler inside thread that has not called Looper.prepare()
阿新 • • 發佈:2019-01-08
好久沒遇到這種錯誤,最初都是因為在新開的執行緒中更新UI才出錯,
後來一直沒忘記用handler,也就沒用錯誤,
今天有出現如下錯誤,程式碼如下:
send.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub //省略其他程式碼 Toast.makeText(getApplicationContext(), "", Toast.LENGTH_SHORT).show(); } }); } });
報錯誤Can't create handler inside thread that has not called Looper.prepare()
第一印象就是去Loop.prepare(),後來發現,其實這還是因為線上程中更新UI導致的,
Toast.makeText(getApplicationContext(), "訂單傳送失敗,請重試", Toast.LENGTH_SHORT).show();
把上面這行程式碼也通過處理放進handler之後,錯誤就沒有了,雖然很簡單,但是如果一味去找handler和Loop的問題,會走彎路。希望有所幫助。
作者:jason0539