天天看點

Android實作長時間等待界面

android 實作等待界面,一般我們在執行比較費時的操作時,不能讓界面線程阻塞,否則android發現太長時間阻塞的話,會彈出關閉該應用的對話框,是以我們一般把比較耗時的操作放在另一個線程去執行,然後界面線程該幹什麼幹什麼,等操作完成後,再通知界面線程完成相應的操作即可。

message可以傳回不同類型的值,可以應對不同需要。

//聲明變量

private button b1;

private progressdialog pd;

//定義handler對象

private handler handler =new handler(){

   @override

   //當有消息發送出來的時候就執行handler的這個方法

   public void handlemessage(message msg){

      super.handlemessage(msg);

      //隻要執行到這裡就關閉對話框

      pd.dismiss();

   }

};

public void oncreate(bundle savedinstancestate) {

        super.oncreate(savedinstancestate);

        setcontentview(r.layout.main);

}

private void processthread(){

      //建構一個下載下傳進度條

      pd= progressdialog.show(mainhandler.this, "同步", "正在同步…");

      new thread(){

         public void run(){

            //在這裡執行長耗時方法

            longtimemethod();

            //執行完畢後給handler發送一個消息

            handler.sendemptymessage(0);

         }

      }.start();

這樣的寫法比較簡潔,運作效率也高。

繼續閱讀