因為考慮到有些程式載入時間相對較長,所以在啟動主介面之前,實現一個載入的progressDialog對話方塊來延緩,相對來說可以提高使用者體驗度。
如果是直接進入主介面,即activity,介面因為載入時間長,一片漆黑,讓使用者老覺得這程式不行。
貼出源碼:
方法一:
public class LoadingActivity extends Activity { private ProgressDialog dialog; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); //設定一個progressdialog的彈窗 dialog = ProgressDialog.show(this, null, "程式正在載入,請稍候...", true, false); //啟動一個處理loading業務的線程 new LoadingThread(this).start(); } private class LoadingThread extends Thread { private LoadingActivity activity; public LoadingThread(LoadingActivity act) { Log.d(">>>>>LoadingThread", "構造方法"); activity = act; } public void run() { Log.d(">>>>>LoadingThread", "傳遞message"); //********************* //處理業務 //********************* //發送訊息 activity.mHandler.sendEmptyMessage(0); } } //處理跳轉到主Activity private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub Log.d(">>>>>Mhandler", "開始handleMessage"); Intent mIntent = new Intent(); mIntent.setClass(LoadingActivity.this, PalmHospital_main_Activity.class); startActivity(mIntent); LoadingActivity.this.finish(); Log.d(">>>>>Mhandler", "LoadActivity關閉"); if (dialog.isShowing()) dialog.dismiss(); } };}
方法二:相對來說要容易理解一點,貼圖
public class LoadingActivity extends Activity { private ProgressDialog dialog; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); //設定一個progressdialog的彈窗 dialog = ProgressDialog.show(this, "加載中...", "正在搜尋。。。。,請稍後!"); Thread thread = new Thread(new Runnable() { public void run() { //do... Message message = new Message(); message.what = 0; mHandler.sendMessage(message); } }); thread.start(); } //處理跳轉到主Activity private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub Log.d(">>>>>Mhandler", "開始handleMessage"); Intent mIntent = new Intent(); mIntent.setClass(LoadingActivity.this, PalmHospital_main_Activity.class); startActivity(mIntent); LoadingActivity.this.finish(); Log.d(">>>>>Mhandler", "LoadActivity關閉"); if (msg.what == 0) { dialog.dismiss(); } } };}