首页技术文章正文

如何实现应用程序欢迎界面的延迟跳转功能?

更新时间: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类执行的任务。




分享到:
在线咨询 我要报名
和我们在线交谈!