欢迎界面倒计时

来源:互联网 发布:查看被占用的端口 编辑:程序博客网 时间:2024/06/02 19:39

欢迎页面倒计时:




实现方式有很多种:

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);}/** * 在倒计时结束时调用 */@Overridepublic void onFinish() {startActivity(new Intent(WelcomeActivity.this, MainActivity.class));finish();}/** * 每间隔countDownInterval会调用一次 *  * @param millisUntilFinished *            已经过去了多长时间 */@Overridepublic 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() {@Overridepublic void onClick(View v) {myCount.cancel();// 点击之后跳过startActivity(new Intent(WelcomeActivity.this,MainActivity.class));finish();}});
最后说说我在写这个东西的时候遇到的一个问题

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

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

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

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

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

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


点击这里下载源代码






















0 0
原创粉丝点击