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