部份程式運算過久的話可能會讓使用者誤會程式掛掉了,所以最好用執行緒讓它獨立執行,並搭配處理中視窗提示使用者或進一步的顯示進度。
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才能存取。

沒有留言:
張貼留言