安卓跨界面顯示進度條

    在項目中推進中需要添加界面和界面之間的進度條顯示,這裏給出寫法。

    這裏假設頁面1跳轉到頁面2,先給出代碼,結合代碼給出解釋:

    以下爲頁面1中的關鍵代碼,其中需要提前定義靜態進度條變量p,private static ProgressDialog p; 

final Handler handler2 = new Handler();
						final Runnable mTasks = new Runnable() {
							public void run() {
								Intent intent = new Intent();
								intent.setClass(register.this, zhuce.class);
								startActivity(intent);
							}
						};
						p = ProgressDialog.show(register.this, "驗證成功!正在跳轉…",
								"加載中,請稍後..", true, true);
						new Thread() {
							public void run() {
								try {
									sleep(2000);// 設置休眠時間
									handler2.post(mTasks);// 發送
								} catch (InterruptedException e) {
									e.printStackTrace();
								}
							}
						}.start();
    這裏將跳轉事件放到一個線程中,創建一個handler對象發送這個線程。當然我們希望進度條是有一定的顯示時間的,所以我們再使用一個線程,通過設置其休眠時間來設置進度條的顯示時間。這裏設置的顯示時間爲2s。

    此時就可以跳轉至界面2了,如果此時結束,那麼界面2按下back鍵回到界面1時,進度條並沒有消失,這樣子就不符合我們的目標了。此時需要在界面1內添加一個靜態函數,給出代碼:

public static void closeProgressDialog() {
		p.dismiss();
	}
    此函數用於使進度條消失。此時在頁面2內註冊一個handler對象來實現調用此函數:

private Handler mHandler = new Handler() {
		public void handleMessage(Message msg) {
			switch (msg.what) {
			case EVENT_TIME_TO_CHANGE_IMAGE:
				register.closeProgressDialog();//調用頁面1的關閉進度條方法
				break;
			}
		}
	};
    在註冊號handler之後,在主函數中調用:

Message message = mHandler.obtainMessage(EVENT_TIME_TO_CHANGE_IMAGE);
		mHandler.sendMessage(message);
    此時即可實現效果,最終實現效果如下:


    特記下,以備後日回顧。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章