首頁技術(shù)文章正文

如何實(shí)現(xiàn)應(yīng)用程序歡迎界面的延遲跳轉(zhuǎn)功能?

更新時(shí)間:2022-04-19 來源:黑馬程序員 瀏覽量:

啟動(dòng)應(yīng)用程序的歡迎界面后,通常需要將頁面暫停3秒鐘后再跳轉(zhuǎn)到主界面(MainActivity所對(duì)應(yīng)的界面,此界面目前為空白),要實(shí)現(xiàn)這個(gè)功能,我們需要在SplashActivity的init()方法中使用Timer類與TimerTask類,使歡迎界面等待3秒后,再跳轉(zhuǎn)到主界面,具體代碼如文件3-3所示。

【文件3-3】SplashActivity.java

......
publicclassSplashActivityextendsAppCompatActivity { 
    ......
    privatevoidinit() { 
        ......
        //創(chuàng)建Timer類的對(duì)象
        Timertimer = newTimer();
        //通過TimerTask類實(shí)現(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秒之后自動(dòng)執(zhí)行任務(wù)task
    }
}

上述代碼中,第7~17行代碼主要用于實(shí)現(xiàn)讓程序在歡迎界面停留3秒后再跳轉(zhuǎn)到主界面的功能,其中第9~16行代碼主要實(shí)現(xiàn)了TimerTask類中的run()方法,在該方法中通過Intent類與startActivity()方法實(shí)現(xiàn)歡迎界面跳轉(zhuǎn)到主界面的功能。

第17行代碼調(diào)用Timer類對(duì)象的schedule()方法實(shí)現(xiàn)程序延遲3秒后執(zhí)行界面跳轉(zhuǎn)任務(wù)的功能,其中schedule()方法中傳遞了2個(gè)參數(shù),第1個(gè)參數(shù)task表示一個(gè)任務(wù),它在此處代表的是歡迎界面跳轉(zhuǎn)到主界面的任務(wù),第2個(gè)參數(shù)3000表示程序延遲執(zhí)行任務(wù)的時(shí)間為3秒。

需要注意的是,在7~17行代碼中主要用到2個(gè)類,分別是Timer類與TimerTask類,其中Timer類是JDK(JavaSEDevelopmentKit是Java開發(fā)工具包)中提供的一個(gè)定時(shí)器工具,使用時(shí)會(huì)在主線程之外開啟一個(gè)單獨(dú)的線程執(zhí)行指定任務(wù),任務(wù)可以執(zhí)行一次或多次。TimerTask類是一個(gè)實(shí)現(xiàn)了Runnable接口的抽象類,它代表一個(gè)可以被Timer類執(zhí)行的任務(wù)。




分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!