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

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

更新時間: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ù)。




分享到:
在線咨詢 我要報名
和我們在線交談!