Android筆記:實現加載的progressDialog之后跳轉到程序主界面


2012CSDN博客之星火熱出爐!     2013年全國百所高校巡講講師招募

Android筆記:實現加載的progressDialog之后跳轉到程序主界面       

        分類:            Android 1982人閱讀 評論(5) 收藏 舉報

因為考慮到有些程序加載時間相對較長,所以在啟動主界面之前,實現一個加載的progressDialog對話框來延緩,相對來說可以提高用戶體驗度。

如果是直接進入主界面,即activity,界面因為加載時間長,一片漆黑,讓用戶老覺得這程序不行。

貼出源碼:

方法一:

  1. public class LoadingActivity extends Activity { 
  2.     private ProgressDialog dialog; 
  3.     @Override 
  4.     protected void onCreate(Bundle savedInstanceState) { 
  5.             // TODO Auto-generated method stub 
  6.             super.onCreate(savedInstanceState); 
  7.             //設置一個progressdialog的彈窗 
  8.             dialog = ProgressDialog.show(this, null, "程序正在加載,請稍候...", true, false); 
  9.             //啟動一個處理loading業務的線程 
  10.             new LoadingThread(this).start(); 
  11.     } 
  12.  
  13.     private class LoadingThread extends Thread { 
  14.             private LoadingActivity activity; 
  15.  
  16.             public LoadingThread(LoadingActivity act) { 
  17.                     Log.d(">>>>>LoadingThread", "構造方法"); 
  18.                     activity = act
  19.             } 
  20.  
  21.             public void run() { 
  22.                     Log.d(">>>>>LoadingThread", "傳遞message"); 
  23.                     //********************* 
  24.                     //  處理業務 
  25.                     //********************* 
  26.                      
  27.                     //發送消息 
  28.                     activity.mHandler.sendEmptyMessage(0); 
  29.             } 
  30.     } 
  31.      
  32.     //處理跳轉到主Activity 
  33.     private Handler mHandler = new Handler() { 
  34.             @Override 
  35.             public void handleMessage(Message msg) { 
  36.                     // TODO Auto-generated method stub 
  37.                     Log.d(">>>>>Mhandler", "開始handleMessage"); 
  38.                     Intent mIntent = new Intent(); 
  39.                     mIntent.setClass(LoadingActivity.this, PalmHospital_main_Activity.class); 
  40.                     startActivity(mIntent); 
  41.                     LoadingActivity.this.finish(); 
  42.                     Log.d(">>>>>Mhandler", "LoadActivity關閉"); 
  43.                     if (dialog.isShowing()) 
  44.                             dialog.dismiss(); 
  45.             } 
  46.     }; 
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();
            }
    };
}

方法二:相對來說要容易理解一點,貼圖

  1. public class LoadingActivity extends Activity { 
  2.     private ProgressDialog dialog; 
  3.     @Override 
  4.     protected void onCreate(Bundle savedInstanceState) { 
  5.             // TODO Auto-generated method stub 
  6.             super.onCreate(savedInstanceState); 
  7.             //設置一個progressdialog的彈窗 
  8.             dialog = ProgressDialog.show(this, "加載中...", "正在搜尋。。。。,請稍後!"); 
  9.             Thread thread = new Thread(new Runnable() { 
  10.                     public void run() { 
  11.                                                                  //do... 
  12.                                                              
  13.                             Message message = new Message(); 
  14.                             message.what = 0
  15.                             mHandler.sendMessage(message); 
  16.                     } 
  17.             }); 
  18.             thread.start(); 
  19.  
  20.     } 
  21.      
  22.     //處理跳轉到主Activity 
  23.     private Handler mHandler = new Handler() { 
  24.             @Override 
  25.             public void handleMessage(Message msg) { 
  26.                     // TODO Auto-generated method stub 
  27.                     Log.d(">>>>>Mhandler", "開始handleMessage"); 
  28.                     Intent mIntent = new Intent(); 
  29.                     mIntent.setClass(LoadingActivity.this, PalmHospital_main_Activity.class); 
  30.                     startActivity(mIntent); 
  31.                     LoadingActivity.this.finish(); 
  32.                     Log.d(">>>>>Mhandler", "LoadActivity關閉"); 
  33.                     if (msg.what == 0) { 
  34.                         dialog.dismiss(); 
  35.                 } 
  36.             } 
  37.     }; 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM