Android Dialog in thread 線程中放Dialog

Dialog放在線程(thread)中會直接掛掉,造成程式沒辦法順利運行,這部份就沒有特別去研究過到底是啥原因,反正有解決方案就好了。線程這東西在這些行動裝置當中我真的覺得超重要,能夠好好的掌握就可以讓程式跑起來更加順暢,中間不會有任何的停頓造成使用上得感覺不好,UI這種東西按下去沒有給個回饋是很恐怖的,如果使用者發現沒有反應連續多點幾下後果可不刊設想。

一般使用線程(Thread)只要將需要用線程處理的地方放在todo something這邊就可以了
new Thread() {
@Override
public void run() {
//TODO something
}
}.start();


使用Thread必須把Dialog放在handler中也就是下面這code的todo something內,印出來的"msg.what"就是所傳送過來的參數,可以利用這參數作變化。
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
//TODO something
System.out.println("msg = "+msg.what);

}
};


若為UI相關必須使用以下方式

runOnUiThread(new Runnable(){
public void run() {
//TODO something
}});


呼叫handler
//傳送"0"過去 msg.what這變數就會印出"0"
handler.sendEmptyMessage(0);


就可以利用這方是來呼叫Dialog出來用,至於Dialog的使用方法可以參考"Android Dialog"

相關連結
Android Developers
Android Developers - Dialog
Android Developers - Thread
Android Developers - Handler
Loading... - Android Dialog

沒有留言:

張貼留言