更新時間:2022-04-19 來源:黑馬程序員 瀏覽量:
啟動應用程序的歡迎界面后,通常需要將頁面暫停3秒鐘后再跳轉到主界面(MainActivity所對應的界面,此界面目前為空白),要實現這個功能,我們需要在SplashActivity的init()方法中使用Timer類與TimerTask類,使歡迎界面等待3秒后,再跳轉到主界面,具體代碼如文件3-3所示。
【文件3-3】SplashActivity.java
...... publicclassSplashActivityextendsAppCompatActivity { ...... privatevoidinit() { ...... //創建Timer類的對象 Timertimer = newTimer(); //通過TimerTask類實現界面跳轉的功能 TimerTasktask = newTimerTask() { @Override publicvoidrun() { Intentintent = newIntent(SplashActivity.this, MainActivity.class); startActivity(intent); SplashActivity.this.finish(); } }; timer.schedule(task, 3000); //設置程序延遲3秒之后自動執行任務task } }
上述代碼中,第7~17行代碼主要用于實現讓程序在歡迎界面停留3秒后再跳轉到主界面的功能,其中第9~16行代碼主要實現了TimerTask類中的run()方法,在該方法中通過Intent類與startActivity()方法實現歡迎界面跳轉到主界面的功能。
第17行代碼調用Timer類對象的schedule()方法實現程序延遲3秒后執行界面跳轉任務的功能,其中schedule()方法中傳遞了2個參數,第1個參數task表示一個任務,它在此處代表的是歡迎界面跳轉到主界面的任務,第2個參數3000表示程序延遲執行任務的時間為3秒。
需要注意的是,在7~17行代碼中主要用到2個類,分別是Timer類與TimerTask類,其中Timer類是JDK(JavaSEDevelopmentKit是Java開發工具包)中提供的一個定時器工具,使用時會在主線程之外開啟一個單獨的線程執行指定任務,任務可以執行一次或多次。TimerTask類是一個實現了Runnable接口的抽象類,它代表一個可以被Timer類執行的任務。