Android線上程裡更新UI介面
在Android裡,不允許線上程裡更新UI介面,那麼當我們要更新UI介面的時候,我們要用到Handler
例子:
這裡我們在按鈕裡開啟了一個執行緒,用來動態更新文字框裡的值,然後我們執行來看一下
(報錯:
Only the original thread that created a view hierarchy can touch its views(字面意思是隻有建立檢視層次結構的原始執行緒才能操作它的View,明顯是執行緒安全相關的)
原因:我們不能再子執行緒中更新主執行緒
所以:我們要在子執行緒中更新主執行緒的時候,我們要用Handler
我們可以在單擊按鈕後傳送一個handler
然後在handler裡處理髮送的訊息
程式碼:
先在頭部定義一個
final Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); if(msg.what==0){ map.put("image", imageList); map.put("title", titleList); Log.i("zjc",
然後線上程裡傳送訊息
handler.sendEmptyMessage(0);
然後就可以了更行ui介面了
還有一種方法就是線上程的run方法裡呼叫handler.post方法
handler.post(new Runnable() { @Override public void run() { textView.setText(“更新你的ui介面”); }