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