閱讀239 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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

最後更新:2017-04-04 07:03:07

  上一篇:go 丁磊回應網易涉足智能手機傳聞:會慎重考慮
  下一篇:go 2012雲計算領域十件大事:雲存儲價格戰加劇