全國(guó)咨詢(xún)/投訴熱線:400-618-4000

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

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

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

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

【文件3-3】SplashActivity.java

......
publicclassSplashActivityextendsAppCompatActivity { 
    ......
    privatevoidinit() { 
        ......
        //創(chuàng)建Timer類(lèi)的對(duì)象
        Timertimer = newTimer();
        //通過(guò)TimerTask類(lèi)實(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類(lèi)中的run()方法,在該方法中通過(guò)Intent類(lèi)與startActivity()方法實(shí)現(xiàn)歡迎界面跳轉(zhuǎn)到主界面的功能。

第17行代碼調(diào)用Timer類(lèi)對(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è)類(lèi),分別是Timer類(lèi)與TimerTask類(lèi),其中Timer類(lèi)是JDK(JavaSEDevelopmentKit是Java開(kāi)發(fā)工具包)中提供的一個(gè)定時(shí)器工具,使用時(shí)會(huì)在主線程之外開(kāi)啟一個(gè)單獨(dú)的線程執(zhí)行指定任務(wù),任務(wù)可以執(zhí)行一次或多次。TimerTask類(lèi)是一個(gè)實(shí)現(xiàn)了Runnable接口的抽象類(lèi),它代表一個(gè)可以被Timer類(lèi)執(zhí)行的任務(wù)。




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