嘿!各位老铁,大家好啊,好久没更新了,主要也不知道写些什么,也不知道别的博主是如何创作的,但对于我来说,原创的日更真的很难,不过老铁们,莫担心,做不到日更,但断断续续的更还是能做到的,也希望自己的一些粗浅的见识,能够给大家带来些许帮助,今天呢,给大家带来的是一个非常好用的计时工具,真的非常好用,用过之后,你会发现,延时和定时,真的从未如此简单。

在讲述之前,不知道各位老铁在平常的开发中,遇到定时和延时相关的功能,都是怎么解决的,古老的Handler还是Timer,无论哪种方式,虽然都能够实现我们想要的效果,但似乎都存在着一定的代码量和生命周期的考虑,有没有一种方式,既调用简单,又能不关注生命周期呢?

了解作者的老铁都知道,曾经的作者在Web的海洋里也翱翔了许久,深刻的知道Js里的定时和延时,是那么的简单,我这里贴出来,大家可以看一看。

setTimeout(function (){//延时3秒后操作},3000)setInterval(function (){//定时,一秒执行一次},1000)

Js中的延时和定时,老铁们,看后怎么样,简单吧,在Android中,我们能否也像前端这样操作呢,一个字,能,必须能。

通过对Kotlin中coroutines里的ticker再次封装,使用LifecycleOwner与生命周期进行绑定,一个简单的计时工具就诞生了。目前已经开源,需要的老铁可以下载。

地址如下:

https://github.com/AbnerMing888/VipTime

下面讲一下具体的使用方式,老铁们也感受下封装的是否简单,目前已经上传了远程Maven,大家可以依赖使用。

1、在你的跟项目下的build.gradle文件下,引入maven。

allprojects {repositories {maven { url "https://gitee.com/AbnerAndroid/almighty/raw/master" }}
}

2、在你需要使用的Module中build.gradle文件下,引入依赖。

dependencies {implementation 'com.vip:time:1.0.0'
}

依赖引入之后,我们就可以实际的操作了,来,小试牛刀一把,和前端调用基本类似,比如一个常见的倒计时,我们就可以如下操作。

setTimeOut(5) {//倒计时完成
}

没看错,调用就是这么简单,参数为需要倒计时的时间,Long类型,是不是用法可以和Web前端相媲美,这个方法,在倒计时中,没有返回倒计时的时间值,只会在定义的时间后进行返回。

有的老铁问了,在倒计时的时候,我需要拿到返回的时间值,怎么搞?必须能搞,大家可以使用下面的方法,参数呢,有两个,第一个参数为倒计时或者延时的时长,第二个参数是间隔时长,默认不填是间隔1秒,通过是否等于end,来判断是否倒计时完成。

setTimeDown(5) {if (it == end) {//倒计时完成} else {val t= it.toString()//倒计时 时间值}
}

同样的,定时也是非常的简单,比如我想要实现一个无限定时器,就可以通过下面的方法,参数只有一个,就是时间间隔,也就是多少秒轮询一次。

setIntervalWireless(1) {val t = it.toString()//定时 时间值}

有的老铁问了,实际的业务中,除了无限的定时之外,还有一些是有限的定时,比如1分钟或者10分钟,这种有限的时间内采取定时,如何操作呢?也是非常的简单,可以使用下面的方式,两个参数,参数1为定时需要的时间, 参数2是时间间隔,多久轮询一次。

setInterval(10, 2) {if (it == end) {//定时完成} else {val t = it.toString()//定时 时间值}
}

提供的这四个方法,基本上可以满足实际的业务需求,可以在Activity或者Fragment里直接调用,因为要和生命周期进行绑定,如果在View或者工具类里进行使用,可以把context转为Activity后再进行调用即可。

这篇没有特别难的,就到这里吧,下篇文章介绍一下,封装的另一个库,MVVM的Base库,大家敬请期待!

贼简单的Android计时工具,老铁,还不试用起来。相关推荐

  1. Android 实用工具Hierarchy Viewer实战

    在Android的SDK工具包中,有很多十分有用的工具,可以帮助程序员开发和测试Android应用程序,大大提高其工作效率.其中的一款叫Hierachy Viewer的可视化调试工具,可以很方便地在开 ...

  2. Android开源工具项目集合

    最近因为要去外派了,工欲善其事,必先利其器!所以又回顾了一下自己github上所收藏的项目,也算是温故而知新吧. 最流行的Android组件大全  http://www.open-open.com/l ...

  3. Android系统 (150)---Android 开发者工具

    31个Android开发者工具 链接:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2017/0526/7973.html 原文:http ...

  4. android monkey 工具,Maxim-高速 Android Monkey 工具使用记录

    一 部署准备 项目地址 部署 Maxim 快捷打开 cmd, 视窗键 +r 打开运行窗口后,输入 cmd 回车 D: 回车进入 D:盘 准备直接 git clone 到 D:盘根目录下 D:\> ...

  5. 使用 Amazon Amplify快速创建简单的 Android 应用程序

    背景: 亚马逊云科技提供了100余种产品免费套餐.其中,计算资源Amazon EC2首年12个月免费,750小时/月:存储资源 Amazon S3 首年12个月免费,5GB标准存储容量. 大家好,我是 ...

  6. 简单的android游戏框架——zgf

    一.zgf是什么 我花了一周时间整理了以前写的代码,发现很多代码可以重用,于是就做了一个简单的android游戏开发框架,名字叫zxx43 game framework,简称zgf,这个游戏框架使用起 ...

  7. Android开发工具类集合

    各种帮助类汇总:https://github.com/Blankj/AndroidUtilCode 常用的 ios 风格 dialog 和 meterial design 风格的 dialog:htt ...

  8. 全网最全Android开发工具,Android开发框架大全

    涵盖Android方方面面的技术, 目前保持更新. 时刻与Android开发流行前沿同步. 目录 一.工具 Android开发工具 在线工具宝典大全 二.框架 *缓存框架* DiskLruCache ...

  9. Android Studio重构之路,我们重新来了解一下Google官方的Android开发工具

    Android Studio重构之路,我们重新来了解一下Google官方的Android开发工具 记得我的第一篇博客就是写Android Studio,但是现在看来还是有些粗糙了,所有重构了一下思路, ...

最新文章

  1. 从小玩到大的超级玛丽,计算复杂性是怎样的?
  2. ASA LAB-ASA NAT配置大全
  3. 皮一皮:直男这下懂了吧...
  4. 在网页中给Flash加上超级链接
  5. VS2015中快捷注释代码块
  6. Linux下社交平台,Linux 启动
  7. Unity 如何修改 particle system 的 start color 属性
  8. 查漏补缺!这份 VUE 学习知识总结请注意查收! | 原力计划
  9. 26. iterator优先于const_iterator、reverse_iterator以及const_reverse_iterator
  10. json react 展示工具_如何基于jsoneditor二次封装一个可实时预览的json编辑器组件?(react版)...
  11. 花生壳实现内网穿透教程
  12. 服务器ip被封一般是什么情况?
  13. Transformer Transducer 论文笔记
  14. android通知小图标灰色,android – 大型通知图标旁边的灰色圆圈?
  15. 跟循泰国国内游宣传曲MV,像本地人一样游曼谷
  16. 【Linux】 ubuntu16.04系统使用印象笔记
  17. 知识图谱-生物信息学-医学顶刊论文(Bioinformatics-2022)-SGCL-DTI:用于DTI预测的监督图协同对比学习
  18. c语言实现10个数由小到大排序(插入排序法)
  19. PING命令的工作原理
  20. 计算机音乐念诗之王,念诗之王(电音版)

热门文章

  1. 神经网络 mse一直不变_利用神经网络寻找超新星
  2. 打脸!2018年深度学习发展速度被严重高估
  3. Zabbix-agent监控客户端
  4. swift开发之--Protocol(协议)
  5. 【win+黑苹果双系统①】小新黑苹果图文安装教程
  6. 微软应用商店的服务器,微软也玩起「快应用」,首批 PWA 应用登陆微软商店
  7. 代码随想录算法训练营第二天 | LeetCode977.有序数组的平方 ,209.长度最小的子数组,59.螺旋矩阵II
  8. js中判断字符串相等使用==
  9. “智慧工地+BIM”为建筑企业智慧化管理加码
  10. 【转】常用原型图设计工具