» 首頁 » 討論區 » Android程式設計 »Thread與Viewr的錯誤

Thread與Viewr的錯誤

發表人: Seachaos
積分: 2432
發表時間: 2009-12-18 18:29:43
Android直接在Thread操作View會發生錯誤
要避免這錯誤就是透過Handler來操作UI

例如以下範例:
onCreate
[quote]
...
        Thread th1 = new Thread(new myRunnable(this));
        th1.start();
...
[/quote]

myRunnable
[quote]
class myRunnable implements Runnable{
    myActivity act;
    public myRunnable(myActivity act){
        this.act=act;
    }
    @Override
    public void run(){
        while(true){
            try{
                Thread.sleep(1000);
                Message msg = new Message();
    act.myHandler.sendMessage(msg);
            }catch(Exception e){
                act.showText.setText("Error: "+e.toString());
            }
            );
        }
    }    
}
[/quote]

在Activity的中的myHandler物件
[quote]
public Handler myHandler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            switch(msg.what){
                default:
                    showText.setText(Integer.toString(msg.what));
            }
            super.handleMessage(msg);
        }
    };
[/quote]

showText就是TextView
透過這個方法就可以在Activity操作程式UI了