部份程式運算過久的話可能會讓使用者誤會程式掛掉了,所以最好用執行緒讓它獨立執行,並搭配處理中視窗提示使用者或進一步的顯示進度。
package iamshiao.sample; import android.app.Activity; import android.app.ProgressDialog; import android.os.Bundle; public class ProgressDialogSample extends Activity { //處理中視窗宣告 private ProgressDialog pDialog = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //設定訊息內容後顯示於前景 pDialog = ProgressDialog.show( this, this.getString(R.string.processing_title), this.getString(R.string.processing_content) ); //建構執行緒 new Thread(){ @Override public void run(){ try{ //下行為表現效果,可取代為欲執行程式。 Thread.sleep(5000); } catch (Exception e){ e.printStackTrace(); } finally{ pDialog.dismiss(); } } }.start(); //開始執行執行緒 } }pDialog取得由ProgressDialog.show產生的實體時即會在前景show出處理中視窗,你可以把這段改到任何你希望show出視窗的地方。 而相對於show,dismiss則是關閉處理中視窗的方法,如果沒有調用的話,處理中視窗就會一直存在於前景。
不過要注意,Thread中不能直接對 UI View做存取,必須要透過Handler才能存取。
沒有留言:
張貼留言