android 倒计时的几种实现方式

1.Handler

   mTime.setText(times + "s");
    Message obtain = Message.obtain();
    obtain.what = 99;

    handler.sendMessageDelayed(obtain, 1000);


    int times = 5;

    Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            switch (msg.what) {
                case 99:
                    times--;
                    mTime.setText(times + "s");

                    if (times <= 0) {
                        startActivity(new Intent(MainActivity.this, Main2Activity.class));
                        return;
                    } else {
                        Message obtain = Message.obtain();
                        obtain.what = 99;
                        handler.sendMessageDelayed(obtain, 1000);
                    }
                    break;
            }
        }
    };


2.TimerTask

    timer = new Timer();

        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                Log.d(TAG, "run: "+(Looper.myLooper()==Looper.getMainLooper()));


                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            mTime.setText(times + "s");
                            times--;
                            if (times==0){

                            }
                        }
                    });
            }
        },0,1000);

3.CountDownTimer


        new CountDownTimer(5000,1000){

            @Override
            public void onTick(long millisUntilFinished) {
                Log.d(TAG, "onTick: "+millisUntilFinished);
            }

            @Override
            public void onFinish() {

                Log.d(TAG, "onFinish: ");
            }
        }.start();

4.Rxjava

    /**
         * 第一个参数:初次延时
         * 第二个参数:周期
         * 第三个参数:时间单位
         */
        Observable.interval(1, 1, TimeUnit.SECONDS)
                .take(4)
                .subscribe(new Observer<Long>() {
                    @Override
                    public void onSubscribe(Disposable d) {
                        Log.d(TAG, "onSubscribe: ");
                    }

                    @Override
                    public void onNext(Long aLong) {

                        Log.d(TAG, "onNext: " + aLong);
                    }

                    @Override
                    public void onError(Throwable e) {

                    }

                    @Override
                    public void onComplete() {

                    }
                });
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android 中提供了 CountDownTimer 类来实现倒计时功能。 首先,在布局文件中添加一个 TextView 用于显示倒计时时间: ``` <TextView android:id="@+id/countdown_timer" android:layout_width="wrap_content" android:layout_height="wrap_content"/> ``` 然后在 Activity 或 Fragment 中获取 TextView 实例,并创建 CountDownTimer 对象: ``` TextView countdownTimer = findViewById(R.id.countdown_timer); CountDownTimer timer = new CountDownTimer(60000, 1000) { public void onTick(long millisUntilFinished) { // 每秒钟更新一次倒计时时间 countdownTimer.setText("倒计时:" + millisUntilFinished / 1000 + "秒"); } public void onFinish() { // 倒计时结束时的操作 countdownTimer.setText("倒计时结束"); } }; ``` 其中 `CountDownTimer` 构造函数的第一个参数表示倒计时总时间,单位为毫秒;第二个参数表示倒计时间隔,单位同样为毫秒。在 `onTick()` 方法中更新 TextView 显示的倒计时时间,`onFinish()` 方法在倒计时结束时调用。 最后,在需要开始倒计时的地方调用 `start()` 方法即可: ``` timer.start(); ``` ### 回答2: Android倒计时控件是一种用于显示倒计时时间的界面元素,它可以提供一个倒计时功能,帮助用户在特定的时间段内进行倒计时操作。 在Android中,可以通过使用CountDownTimer类来实现倒计时功能。CountDownTimer类是Android提供的一个抽象类,它可以帮助我们实现倒计时功能。 使用CountDownTimer类,我们可以传入两个参数:倒计时总时间和倒计时间隔。倒计时总时间表示倒计时的总时长,而倒计时间隔表示每隔多长时间更新一次倒计时状态。通过重写CountDownTimer类的onTick()方法和onFinish()方法,我们可以在倒计时过程中进行相应的操作。 在onTick()方法中,我们可以更新倒计时界面的显示内容,例如更新TextView控件中的文字内容,显示当前的倒计时时间。 在onFinish()方法中,我们可以进行倒计时结束后的操作,例如更新按钮状态,显示倒计时结束的提示信息等。 除了使用CountDownTimer类外,我们还可以使用Handler类和Runnable接口来实现倒计时功能。通过Handler类和Runnable接口,我们可以实现自定义的倒计时功能,并更新UI界面。 总之,Android倒计时控件是一种非常实用的界面元素,可以帮助我们实现倒计时功能,提醒用户在特定时间内进行相关操作。无论是使用CountDownTimer类还是Handler类和Runnable接口,都可以实现倒计时功能,开发者可以根据具体的需求选择合适的实现方式。 ### 回答3: Android倒计时控件是一种在Android应用中用于显示倒计时的控件。它通常被用于倒计时功能,比如在游戏中显示剩余时间,或者在计时器应用中显示倒计时Android系统提供了几种不同的方式实现倒计时控件。 一种简单的实现方式是使用CountDownTimer类。这个类提供了一个倒计时功能,并且可以轻松地实现倒计时控件。我们可以通过继承CountDownTimer类并覆写其中的方法来实现自定义的倒计时控件。在覆写的方法中,我们可以处理倒计时过程中的逻辑,比如更新UI界面。 另一种实现方式是使用Handler和Runnable来实现倒计时功能。我们可以创建一个Handler对象,并使用它来发送延时消息。在延时消息的回调函数中,我们可以更新倒计时控件的UI界面。通过不断地发送延时消息,我们可以实现倒计时的效果。 在实现倒计时控件时,需要注意一些细节。首先是要考虑控件的样式和布局,以便能够适应不同的应用场景。其次是要处理倒计时结束时的逻辑,比如触发某个事件或显示相应的提示信息。另外,还需考虑到倒计时控件在后台运行时的管理,以便能够正确地继续倒计时。 总之,Android倒计时控件是一种在应用程序中实现倒计时功能的重要工具。通过不同的方式实现倒计时控件,我们可以满足不同应用的需求,并提供良好的用户体验。同时,我们还需要注意一些细节,以确保倒计时控件的稳定性和正确性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值