欢迎界面倒计时

时间:2022-10-09 15:08:10

欢迎页面倒计时:


欢迎界面倒计时

欢迎界面倒计时


实现方式有很多种:

1.开一个子线程    每休眠1s  发一个handler消息出去  更改倒计时

2.不用开启子线程,使用handler发一个消息,在handler发延迟消息,在handle中构成一个递归

...

n.安卓中有一个专门做倒计时的类  CountDownTimer
我用的是最后一种:

首先,在欢迎界面写一个类实现CountDownTimer,里边有几个方法需要重写下

        /* 定义一个倒计时的内部类 */
class MyCount extends CountDownTimer {
/**
*
* @param millisInFuture
* 持续时长
* @param countDownInterval
* 间隔时长
*/
public MyCount(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}

/**
* 在倒计时结束时调用
*/
@Override
public void onFinish() {
startActivity(new Intent(WelcomeActivity.this, MainActivity.class));
finish();
}

/**
* 每间隔countDownInterval会调用一次
*
* @param millisUntilFinished
* 已经过去了多长时间
*/
@Override
public void onTick(long millisUntilFinished) {
tv_skip.setText("跳过" + millisUntilFinished / 1000 + "s");
}
}
接着,启动这个倒计时

        MyCount myCount = new MyCount(10000, 1000);// 创建一个倒计时 总时长10秒 间隔1秒
myCount.start();// 开启倒计时
最后 ,设置一个点击跳过

       tv_skip.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myCount.cancel();// 点击之后跳过
startActivity(new Intent(WelcomeActivity.this,
MainActivity.class));
finish();
}
});
最后说说我在写这个东西的时候遇到 的一个问题

问题是无论是倒计时让它自然跳过,还是点击跳过,发现跳转总会卡顿一会,看代码看了半天,没看出问题.

后来发现,在最后时间到的时候,点击返回键,也不能返回,并且在demo中也没有这样的问题,后来看了下

主界面的代码打的log日志,发现在主界面,直接联网获取json联网9次,主界面是通过radiobutton和fragment

,组合才能的,但是一上去默认就将五个fragment全部加载出来了,我认为主界面在打开瞬间加载内容太多导致的.

后来我将主界面的改成  需要显示fragment就从集合中取,如果集合中没有,再去创建,而不是一上来就创建所有

的,果然这个问题也迎刃而解(这个不是我写的,其他人写的)


点击这里下载源代码