返回顶部
首页 > 资讯 > 精选 >Android中怎么使用flow实现倒计时
  • 822
分享到

Android中怎么使用flow实现倒计时

2023-06-30 09:06:42 822人浏览 八月长安
摘要

本篇内容主要讲解“Android中怎么使用flow实现倒计时”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android中怎么使用flow实现倒计时”吧!现在因为有了协程和Flow,我们可以借助

本篇内容主要讲解“Android中怎么使用flow实现倒计时”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android中怎么使用flow实现倒计时”吧!

现在因为有了协程和Flow,我们可以借助Flow这个工具,更加优雅地实现这个需求功能.

1.依赖导入

    api 'org.jetbrains.Kotlinx:kotlinx-coroutines-core:1.4.2'    api 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.1'    // lifecycleScope(可选)    api "androidx.lifecycle:lifecycle-runtime-ktx:2.2.0"

2. 代码实现

fun countDownCoroutines(    total: Int,    scope: CoroutineScope,    onTick: (Int) -> Unit,    onStart: (() -> Unit)? = null,    onFinish: (() -> Unit)? = null,): Job {    return flow {        for (i in total downTo 0) {            emit(i)            delay(1000)        }    }.flowOn(Dispatchers.Main)        .onStart { onStart?.invoke() }        .onCompletion { onFinish?.invoke() }        .onEach { onTick.invoke(it) }        .launchIn(scope)}

2.1使用:

private var mCountdownJob: Job? = nullmBinding.btnStart.setOnClickListener {    mCountdownJob = countDownCoroutines(60, lifecycleScope,        onTick = { second ->            mBinding.text.text = "${second}s后重发"        }, onStart = {            // 倒计时开始        }, onFinish = {            // 倒计时结束,重置状态            mBinding.text.text = "发送验证码"        })}mBinding.btnStop.setOnClickListener {     // 取消倒计时    mCountdownJob?.cancel()

其他的完整Demo https://GitHub.com/dahui888/kotlinpractice

补充:

下面是小编收集整理Android 实现倒计时的几种方式

使用 Timer方式:

      public void startTimer() {        if (timer == null) {            timer = new Timer();        }        if (timerTask == null) {            timerTask = new TimerTask() {                @Override                public void run() {                    Message message = new Message();                    message.what = 2;                    handler.sendMessage(message);                }            };        }        if (timer != null && timerTask != null) {            timer.schedule(timerTask, 0, 2000);        }    }        public void stopTimer() {        if (timer != null) {            timer.cancel();            timer = null;        }        if (timerTask != null) {            timerTask.cancel();            timerTask = null;        }    }

使用rxjava方式:

  private void countDown() {        mdDisposable = Flowable.intervalRange(0, Constant.COUNT_DOWN, 0,                     1,TimeUnit.SECONDS)                .observeOn(AndroidSchedulers.mainThread())                .doOnNext((aLong) -> LogUtils.e("倒计时--" + aLong))                .doOnComplete(() -> randomSelectSeat())                .subscribe();    }         @Override    protected void onDestroy() {        if (mdDisposable != null) {            mdDisposable.dispose();        }        super.onDestroy();    }

使用CountDownTimer方式:

//倒计时CountDownTimer//每过1000毫秒执行一次onTick//倒计时完成执行onFinishCountDownTimer timer = new CountDownTimer(5000, 1000){    @Override    public void onTick(long sin) {        Toast.makeText(MainActivity.this, "" + sin/1000, Toast.LENGTH_SHORT).show();    }     @Override    public void onFinish() {        Toast.makeText(MainActivity.this, "倒计时完成", Toast.LENGTH_SHORT).show();    }};//开始timer.start();//暂停if (timer != null) {     timer.cancel();     timer = null; }

到此,相信大家对“Android中怎么使用flow实现倒计时”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: Android中怎么使用flow实现倒计时

本文链接: https://lsjlt.com/news/327845.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Android中怎么使用flow实现倒计时
    本篇内容主要讲解“Android中怎么使用flow实现倒计时”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android中怎么使用flow实现倒计时”吧!现在因为有了协程和Flow,我们可以借助...
    99+
    2023-06-30
  • Android 使用flow实现倒计时的方式
    Android 倒计时一般实现方式: handler+postDelayed() 方式Timer + TimerTask + handler 方式ScheduledExecutorS...
    99+
    2024-04-02
  • 怎么在Android中实现列表倒计时
    怎么在Android中实现列表倒计时?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。CountDownTimer类用法  private Count...
    99+
    2023-05-30
    android
  • Android使用CountDownTimer实现倒计时效果
    在开发中会经常用到倒计时这个功能,包括给手机发送验证码等等,之前我的做法都是使用Handler + Timer + TimerTask来实现,现在发现了这个类,果断抛弃之前的做...
    99+
    2022-06-06
    倒计时 Android
  • Android中怎么实现一个倒计时效果
    今天就跟大家聊聊有关Android中怎么实现一个倒计时效果,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。需求:a.在后台添加时,如果是今日直播,则需要添加开始时间(精确到秒);b.离...
    99+
    2023-05-30
    android
  • Android中CountDownTimer 实现倒计时功能
    CountDownTimerCountDownTimer 是android 自带的一个倒计时类,使用这个类可以很简单的实现 倒计时功能CountDownTimer 的实现方式 new CountDownTimer(6000,100...
    99+
    2023-05-31
    countdowntimer 倒计时 tim
  • Android CountDownTimer实现倒计时器
    使用介绍 开发中经常会遇到一些和倒计时有关的场景,比如发送验证码的按钮,会在点击发送后,显示倒计时间,倒计时结束后才能够刷新按钮,再次允许点击。为了不阻塞软件的运行,又要实时...
    99+
    2022-06-06
    倒计时 计时器 Android
  • Android实现圆圈倒计时
    本文实例为大家分享了Android实现圆圈倒计时的具体代码,供大家参考,具体内容如下 1. 显示效果如下 2. 首先是创建shape的xml文件 在res/drawable目录下创...
    99+
    2022-11-13
    Android 倒计时
  • Android怎样实现倒计时功能
    这篇文章主要为大家展示了“Android怎样实现倒计时功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Android怎样实现倒计时功能”这篇文章吧。一. 已有倒计时方案存在的问题在开发倒计时功...
    99+
    2023-06-25
  • 怎么在Android中实现一个倒计时功能
    本篇文章给大家分享的是有关怎么在Android中实现一个倒计时功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。以30分钟为例写的一个倒计时:public class Main...
    99+
    2023-05-31
    android roi %d
  • Android实现时间倒计时功能
    本文实例为大家分享了Android实现时间倒计时功能展示的具体代码,供大家参考,具体内容如下效果展示MainActivity(主页面代码)public class MainActivity extends Activity { priva...
    99+
    2023-05-30
    android 倒计时 roi
  • Android中如何实现倒计时验证
    这篇文章主要介绍了Android中如何实现倒计时验证,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。短信验证码功能,这里总结了两种常用的方式,可以直接拿来使用。看图:说明:这里...
    99+
    2023-05-31
    android
  • php怎么实现倒计时
    本篇内容介绍了“php怎么实现倒计时”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php实现倒计时的方法:1、通过date_default_...
    99+
    2023-06-25
  • Android 中不用线程如何实现倒计时
    需求: 有多个组件可以开启倒计时,正常情况下默认倒计时时间终了后更新UI,另,用户可以取消指定倒计时。 这里使用CountDownTimer进行倒计时,其中回调函数onFini...
    99+
    2022-06-06
    倒计时 线程 Android
  • Android利用Chronometer实现倒计时功能
    项目需要实现一个计时的功能,利用Chronometer虽然可以很方便的实现计时功能,但需要的却是一个倒计时控件。 百度了一下方法不少,倒计时的却没有,于是用Chronomete...
    99+
    2022-06-06
    倒计时 Android
  • Android中怎么利用CountDownTimer实现验证码倒计时效果
    今天就跟大家聊聊有关Android中怎么利用CountDownTimer实现验证码倒计时效果,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、需求分析点击按钮之后,按钮文字变为“ns...
    99+
    2023-05-30
    android countdowntimer
  • 怎么在Android中利用CountDownTimer实现一个倒计时功能
    这篇文章主要介绍了怎么在Android中利用CountDownTimer实现一个倒计时功能,此处通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考价值,需要的朋友可以参考下:Android是什么Android是一种基于Lin...
    99+
    2023-05-30
    android countdowntimer
  • VBScript中怎么实现倒计时功能
    这篇文章给大家介绍VBScript中怎么实现倒计时功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。---- 要实现倒计时,主要用到的是一个时间函数: DateDIFF(),它的作用是求出两个日期之间的时间间隔。它的格...
    99+
    2023-06-03
  • Android中CountDownTimer倒计时器用法实例
    本文实例讲述了Android中CountDownTimer倒计时器用法。分享给大家供大家参考,具体如下: 在平时我们编程的时候,经常会用到倒计时这个功能,很多人不知道Andro...
    99+
    2022-06-06
    计时器 Android
  • Android 简单实现倒计时功能
    在 Android 中倒计时功能是比较常用的一个功能,比如短信验证码,付款倒计时等。实现方式有Handler、Thread 等,但是实现起来都有点麻烦,其实Android已经为...
    99+
    2022-06-06
    倒计时 Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作