問題: 直接在普通子執行緒中toast會報錯
錯誤關鍵: 1.普通的執行緒不能直接new乙個handle,而toast初始化**中如下**片:public class toast
2.為什麼普通執行緒不能new乙個handle?
handle類**如下:
public handler()
} looper類中的**片段:
public static final looper mylooper()
處理方法: 1.為普通執行緒先設定乙個訊息迴圈, 使用 looper.prepare()方法
public static final void prepare()
sthreadlocal.set(new looper());
}2.進入訊息迴圈檢視訊息 looper.loop(); //為阻塞方法
public void onclick(view v);
}.start();
}
子執行緒中Toast
那天和同學在討論乙個小demo,無意間,在子執行緒中toast了一把,竟然報錯了 因為toast在service和activity中都可以執行。所以開始就認為和ui執行緒沒有有太大的關係,而現在子執行緒toast竟然報錯!無奈之下,花了半天的時間看了一下handler,looper,toast的原始...
在子執行緒中直接使用 Toast 及其原理
一般我們都把toast當做乙個ui控制項在主線程顯示。但是有時候非想在子執行緒中顯示toast,就會使用handler切換到主線程顯示。但是子執行緒中真的不能直接顯示toast嗎?答案是 當然可以。那應該怎麼操作呢?在當前執行緒中先初始化乙個looper即可!looper.prepare toast...
可在子執行緒中使用的Toast
one goal,one passion 一般我們使用taost時必須在主線程中,可是如果我們想在子執行緒中使用是就不是那麼方便了.因為系統的toast在子執行緒中使用會報錯.下面我們做一些處理,就可以實現在子執行緒中使用toast.public class myutils else 1,如果執行緒...