歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android開發——通過子線程更新界面UI

在Android開發過程中,我們經常有通過子線程來更新界面UI的需求,而android是不允許子線程更新界面的,只能通過主線程來更新界面UI,而且,android開發中,由於要保證主線程的通暢,一般主線程只負責處理界面更新,事件處理,窗體顯示的回調等重要且不耗時的操作,而像連接網絡,io操作等,一般讓子進程負責。

所以,android提供了一種消息機制來實現子線程更新UI的需求,android提供Handler類,用於子線程和主進程交互。在主進程中,聲明實例化一個Handler,並重寫它的handleMessage方法。
 
private Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            int i = (Integer) msg.obj;
            tView.setText("hello world "+i);
            super.handleMessage(msg);
        }
                                                           
    };

在子線程中,調用的Handler的sendMessage方法,android主線程就會調用HandleMessage方法來處理。

Thread thread = new Thread(){
            @Override
            public void run() {
                for (int i = 0; i < 1000; i++) {
                    try {
                        sleep(500);
                    } catch (Exception e) {
                        // TODO: handle exception
                    }
                    Message msg = new Message();
                    msg.obj = i;
                    handler.sendMessage(msg);
                }
                super.run();
            }

Handler

更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11

Copyright © Linux教程網 All Rights Reserved