Android倒计时原理的实现
来源:互联网 发布:没有安卓 知乎 编辑:程序博客网 时间:2024/05/17 18:28
Android倒计时原理的实现
- 需求:对于密码框,用户多次错误输入后,需要禁止用户输入,并且提示倒计时,类似于android手机多次错误输入锁屏密码;
- 方案1:使用handler倒计时,提示用户剩余时间;每隔1s,更新提示时间,对于这种如果程序退出密码框又可以重新输入,用户体验不好;
- 方案2:参考android锁屏原生代码,发现其主要使用到了CountDownTimer;CountDownTimer的构造方法有两个参数,参数1表示倒计时的总时间,参数2每次倒计时的跨度,我们一般可以设置为1000,代表每次间隔1s;其主要用法如以下实例:
new CountDownTimer(elapsedRealtimeDeadline - SystemClock.elapsedRealtime(), 1000) { @Override public void onTick(long millisUntilFinished) { //此处给用户提示 mTextView.setText(getString(R.string.passwd_input_error_wait, millisUntilFinished / 1000)); } @Override public void onFinish() { //此处设置键盘可以点击 mNumberPad.setNumberPadClickable(true); mTextView.setText(getString(R.string.input_pwd)); Settings.System.putLong(getContentResolver(), "com_bird_goodx_over_time_pass", 0L); numberFailCount = 0; }}.start();
- 其中onTick方法,每次计时的时候回调的方法;onFinish是计时时间全部结束时回调的方法;另:实例中用到了SystemClock类,该类主要有两个静态方法:
native public static long uptimeMillis();native public static long elapsedRealtime();
- 其中uptimeMillis方法获取到的时间是:系统启动到现在处于的非休眠的时间;elapsedRrealtime方法获取的是:系统启动到现在的时间;两者的不同在于前者获取的时间不包括休眠时间;
- 看android锁屏发现,灭屏后再亮屏倒计时还在, 是因为在view再次显示的时候重新启动倒计时,为了确保倒计时的起始值是OK的,我们需要将倒计时的结束时间点保存到数据库中(当然SharePreference中也可以),每次启用倒计时的时候,重新获取下该值就可以了;另外记得结束的时候重置数据库。
0 0
- Android倒计时原理的实现
- Android 倒计时的实现
- Android -- 倒计时的实现
- Android控件倒计时的实现
- Android倒计时功能的实现
- Android开发--倒计时的实现
- Android倒计时的实现代码
- Android 酷炫 倒计时的实现
- Android倒计时控件的实现
- Android 倒计时功能的实现
- Android实现倒计时的按钮
- android倒计时功能的实现
- Android实现倒计时的按钮
- Android 倒计时按钮的实现
- android 实现倒计时的方法
- android倒计时的简单实现
- Android -- 倒计时Button的实现
- CountDownTimer 原理,倒计时实现
- ROS By Example _Hydro_volume1_ CN_4
- 时间函数
- C语言程序员必读的5本书
- 微软新浏览器Edge漏洞曝光:强行追踪用户
- 缓存
- Android倒计时原理的实现
- Qt使用教程之创建Qt Quick应用程序(三)
- 航电1012 u Calculate e
- 98.set_include_path()
- Centos 7 最小化版本中无法使用ifconfig解析
- 使用HttpsURLConnection发送POST请求
- struts.xml-包配置
- 2016年数学建模美赛题目原文及翻译-B [个人思路]
- 家庭个人samba文件服务器搭建(一) 完全共享目录