1. 程式人生 > >android之Can't create handler inside thread that has not called Looper.prepare()

android之Can't create handler inside thread that has not called Looper.prepare()

好久沒遇到這種錯誤,最初都是因為在新開的執行緒中更新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