java等待欢迎界面_Android高级开发-欢迎界面的实现

[任务分析]

欢迎界面主要展示产品Logo和版本信息,通常会在该界面停留一段时间之后自动跳

转到其他界面,因此需要在逻辑代码中设置欢迎界面暂停几秒(本项目为3秒)后再跳转,

并获取程序的版本号。

[任务实施]

(1)获取版本号

在SplashActivity中创建init)方法,在该方法中获取TextView控件,通过PackageManager

(包管理器)获取程序版本号(版本号是build.gradle 文件中的 versionName的值),并

将其显示在TextView 控件上。

(2)让界面延迟跳转

在init()方法中使用Timer以及TimerTask 类设置欢迎界面延迟3秒再跳转到主界面

(MainActivity所对应的界面,此界面目前为空白页面),具体代码如下所示。

package com.boxuegu.activity;

import android.content.Intent;

import android.content.pm.ActivityInfo;

import android.content.pm.PackageInfo;

import android.content.pm.PackageManager;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.widget.TextView;

import com.boxuegu.R;

import com.boxuegu.MainActivity;

import java.util.Timer;

import java.util.TimerTask;

public class SplashActivity extends AppCompatActivity {

private TextView tv_version;

@Override

protected void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_splash);

//设置此页面为竖屏

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

init();

}

private void init(){

tv_version=(TextView) findViewById(R.id.tv_version);

try{

PackageInfo info=getPackageManager().getPackageInfo(getPackageName(),0);

tv_version.setText("V"+info.versionName);

}catch(PackageManager.NameNotFoundException e){

e.printStackTrace();

tv_version.setText("V");

}

Timer timer=new Timer();

TimerTask task=new TimerTask() {

@Override

public void run() {

Intent intent=new Intent(SplashActivity.this, LoginActivity.class);

startActivity(intent);

SplashActivity.this.finish();

}

};

timer.schedule(task,3000);

}

}

第27,28行代码首先通过 PackageManager的 getPackagelnfo方法获取Packagelnfo对象,然后通过该对象的versionName 属性获取程序的版本号,最后通过 setText)方法将获取到的版本号设置到TextView 控件上。

第34~44行代码的作用是让程序在欢迎界面停留3秒后跳转。 在此段代码中主要用到两个类,分别为Timer类和 TimerTask类,其中Timer类是JDK(Java SEDevelopment Kit,Java开发工具包)中提供的一个定时器工具,使用时会在主线程之外开启一个单独的线程执行指定任务,任务可以执行一次或多次。Timer Task类是一个实现了 Runnable 接口的抽象类,同时代表一个可以被 Timer执行的任务,因此跳转到主界面的任务代码写在TimerTask的run)方法中。Timer的 schedule)方法是任务调度方法,在3秒之后调度TimerTask执行跳转操作,实现延迟跳转功能。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值