Android實現長時間等待介面

來源:互聯網
上載者:User

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();
}
這樣的寫法比較簡潔,運行效率也高。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.