贼简单的Android计时工具,老铁,还不试用起来。
嘿!各位老铁,大家好啊,好久没更新了,主要也不知道写些什么,也不知道别的博主是如何创作的,但对于我来说,原创的日更真的很难,不过老铁们,莫担心,做不到日更,但断断续续的更还是能做到的,也希望自己的一些粗浅的见识,能够给大家带来些许帮助,今天呢,给大家带来的是一个非常好用的计时工具,真的非常好用,用过之后,你会发现,延时和定时,真的从未如此简单。
在讲述之前,不知道各位老铁在平常的开发中,遇到定时和延时相关的功能,都是怎么解决的,古老的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计时工具,老铁,还不试用起来。相关推荐
- Android 实用工具Hierarchy Viewer实战
在Android的SDK工具包中,有很多十分有用的工具,可以帮助程序员开发和测试Android应用程序,大大提高其工作效率.其中的一款叫Hierachy Viewer的可视化调试工具,可以很方便地在开 ...
- Android开源工具项目集合
最近因为要去外派了,工欲善其事,必先利其器!所以又回顾了一下自己github上所收藏的项目,也算是温故而知新吧. 最流行的Android组件大全 http://www.open-open.com/l ...
- Android系统 (150)---Android 开发者工具
31个Android开发者工具 链接:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2017/0526/7973.html 原文:http ...
- android monkey 工具,Maxim-高速 Android Monkey 工具使用记录
一 部署准备 项目地址 部署 Maxim 快捷打开 cmd, 视窗键 +r 打开运行窗口后,输入 cmd 回车 D: 回车进入 D:盘 准备直接 git clone 到 D:盘根目录下 D:\> ...
- 使用 Amazon Amplify快速创建简单的 Android 应用程序
背景: 亚马逊云科技提供了100余种产品免费套餐.其中,计算资源Amazon EC2首年12个月免费,750小时/月:存储资源 Amazon S3 首年12个月免费,5GB标准存储容量. 大家好,我是 ...
- 简单的android游戏框架——zgf
一.zgf是什么 我花了一周时间整理了以前写的代码,发现很多代码可以重用,于是就做了一个简单的android游戏开发框架,名字叫zxx43 game framework,简称zgf,这个游戏框架使用起 ...
- Android开发工具类集合
各种帮助类汇总:https://github.com/Blankj/AndroidUtilCode 常用的 ios 风格 dialog 和 meterial design 风格的 dialog:htt ...
- 全网最全Android开发工具,Android开发框架大全
涵盖Android方方面面的技术, 目前保持更新. 时刻与Android开发流行前沿同步. 目录 一.工具 Android开发工具 在线工具宝典大全 二.框架 *缓存框架* DiskLruCache ...
- Android Studio重构之路,我们重新来了解一下Google官方的Android开发工具
Android Studio重构之路,我们重新来了解一下Google官方的Android开发工具 记得我的第一篇博客就是写Android Studio,但是现在看来还是有些粗糙了,所有重构了一下思路, ...
最新文章
- 从小玩到大的超级玛丽,计算复杂性是怎样的?
- ASA LAB-ASA NAT配置大全
- 皮一皮:直男这下懂了吧...
- 在网页中给Flash加上超级链接
- VS2015中快捷注释代码块
- Linux下社交平台,Linux 启动
- Unity 如何修改 particle system 的 start color 属性
- 查漏补缺!这份 VUE 学习知识总结请注意查收! | 原力计划
- 26. iterator优先于const_iterator、reverse_iterator以及const_reverse_iterator
- json react 展示工具_如何基于jsoneditor二次封装一个可实时预览的json编辑器组件?(react版)...
- 花生壳实现内网穿透教程
- 服务器ip被封一般是什么情况?
- Transformer Transducer 论文笔记
- android通知小图标灰色,android – 大型通知图标旁边的灰色圆圈?
- 跟循泰国国内游宣传曲MV,像本地人一样游曼谷
- 【Linux】 ubuntu16.04系统使用印象笔记
- 知识图谱-生物信息学-医学顶刊论文(Bioinformatics-2022)-SGCL-DTI:用于DTI预测的监督图协同对比学习
- c语言实现10个数由小到大排序(插入排序法)
- PING命令的工作原理
- 计算机音乐念诗之王,念诗之王(电音版)
热门文章
- 神经网络 mse一直不变_利用神经网络寻找超新星
- 打脸!2018年深度学习发展速度被严重高估
- Zabbix-agent监控客户端
- swift开发之--Protocol(协议)
- 【win+黑苹果双系统①】小新黑苹果图文安装教程
- 微软应用商店的服务器,微软也玩起「快应用」,首批 PWA 应用登陆微软商店
- 代码随想录算法训练营第二天 | LeetCode977.有序数组的平方 ,209.长度最小的子数组,59.螺旋矩阵II
- js中判断字符串相等使用==
- “智慧工地+BIM”为建筑企业智慧化管理加码
- 【转】常用原型图设计工具