1. 程式人生 > >Android 實現兩個activity跳轉之間加入進度條

Android 實現兩個activity跳轉之間加入進度條

場景是:在activity1點選了按鈕之後跳轉到activity2,但是在點選之後,有大概六七秒的時間還停留在activity1,這樣給使用者的體驗不是很友好。

在activity1裡面:

先定義

 private static ProgressDialog dialog;
  

    然後我是在點選按鈕的監聽事件裡面寫了:

          //選擇背景按鈕按下
            bgBtn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void
    onClick(View v) { Handler handler=new Handler(); //在run裡面寫了跳轉activity Runnable runnable=new Runnable() { @Override public void run() { Intent intent = new Intent(); intent.setClass(MainActivity2.this
    , BgMapActivity.class); startActivityForResult(intent, 3); } }; handler.post(runnable); dialog=ProgressDialog.show(MainActivity2.this,"請稍等","正在跳轉",true,true); } });
    //在onCreate方法外面定義靜態方法
    public static void closeProgressDialog() { dialog.dismiss(); }

    在activity2裡面

    先定義

        private static final int EVENT_TIME_TO_CHANGE_IMAGE = 100;
    

    然後,這裡寫的是,當activity2加載出來之後,要把定義好的EVENT_TIME_TO_CHANGE_IMAGE值傳回activity1中,進行關閉進度條

    @Override
        public void onWindowFocusChanged(boolean hasFocus) {
            super.onWindowFocusChanged(hasFocus);
            if(hasFocus){
                Message message = mHandler.obtainMessage(EVENT_TIME_TO_CHANGE_IMAGE);
                mHandler.sendMessage(message);
            }
    
        }
    
     private Handler mHandler = new Handler() {
            public void handleMessage(Message msg) {
                switch(msg.what){
                    case EVENT_TIME_TO_CHANGE_IMAGE:
                        MainActivity2.closeProgressDialog();
                        break;
                }
            }};