项目中有个改密流程,忘记密码->手机号验证->新密码,要求验证手机号验证界面跳转或返回,再进入界面,60S内不再自动请求验证码。

最终解决方法为开启服务实现,倒计时结束后服务自动停止。

step 1:

创建服务

public class TimerService extends Service {private Timer timer = null;private TimerTask timerTask = null;private int i = 0;public static final String TIMER_ACTION = "your_package.timer";@Overridepublic void onCreate() {super.onCreate();//在创建service的时候开始计时if (timer == null && timerTask == null) {timer = new Timer();timerTask = new TimerTask() {@Overridepublic void run() {i++;//没执行一次就发送一次广播Intent intent = new Intent();intent.putExtra("time", i);intent.setAction(TimerService.TIMER_ACTION);sendBroadcast(intent);}};timer.schedule(timerTask, 0, 1000);}}@Overridepublic void onDestroy() {super.onDestroy();Logger.e("onDestroy");if (timerTask != null) {timerTask.cancel();timerTask = null;}if (timer != null) {timer.cancel();timer = null;}}@Nullable@Overridepublic IBinder onBind(Intent intent) {return null;}
}

step 2:

定义广播

public class TimerReceiver extends BroadcastReceiver {//必须要重载的方法,用来监听是否有广播发送@Overridepublic void onReceive(Context context, Intent intent) {String intentAction = intent.getAction();if (TimerService.TIMER_ACTION.equals(intentAction)) {int time = intent.getIntExtra("time", 0);}}}

step 3:

调用

        //注册广播timerReceiver = new TimerReceiver();IntentFilter filter = new IntentFilter();filter.addAction(TimerService.TIMER_ACTION);registerReceiver(timerReceiver, filter);//开始服务startService(new Intent(mActivity, TimerService.class));

另附服务是否运行判断工具

/*** 判断服务是否正在运行**/public static boolean isServiceRunning(String serviceName, Context context) {//活动管理器ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);List<ActivityManager.RunningServiceInfo> runningServices = am.getRunningServices(100); //获取运行的服务,参数表示最多返回的数量for (ActivityManager.RunningServiceInfo runningServiceInfo : runningServices) {String className = runningServiceInfo.service.getClassName();if (className.equals(serviceName)) {return true; //判断服务是否运行}}return false;}

service实现验证码倒计时,切换页面不会停止相关推荐

  1. 切换页面导致计时器停止,JS暂停!

    引:现在浏览器,除了ie8及以下的浏览器,当你切换标签页面时,浏览器会自动清除本页面的js缓存. 1.为什么? 因为现在的浏览器为了性能考虑,在你切换完选项卡之后会清除掉这里的缓存数据.这属于浏览器层 ...

  2. js开发实例 —— 发送短信验证码倒计时5S钟之后自动跳转页面

    十九.发送短信验证码倒计时 思路: ① 按钮点击之后,会禁用disabled为true. ② 同时按钮里面的内容会变化,注意button里面的内容通过innerHTML修改. ③ 里面秒数是有变化的, ...

  3. jquery发送手机 验证码倒计时插件 支持页面刷新

    在最新项目中需要用到发送短信短信验证码,网上搜了半天找不到满意的,就自己写了一个. jquery封装好的发送手机验证码倒计时插件 采用cookie 防止页面刷新. 实现思路: 1.实现点击按钮,对手机 ...

  4. vue element-ui实现获取短信验证码 ,60秒倒计时及页面

    cc废话不多说先上效果图  vue页面布局 <el-form-item prop="phoneCode" class="pr"><el-inp ...

  5. javaScript 局部功能实现(tab切换、距离某天还剩多少天、全选与反选、验证码倒计时)

    局部功能实现了,成功还远吗?? 一.tab切换 <!DOCTYPE html> <html lang="en"> <head><meta ...

  6. android 倒计时封装,react native中的聊天气泡及timer封装成的发送验证码倒计时

    其实,今天我想把我近期遇到的坑都总结一下: 1.goBack的跨页面跳转,又两种方法,一可以像兔哥那样修改navigation源码,二可以用navigationActions 2.父子组件的传值,一可 ...

  7. 仿联想商城laravel实战---2、后端页面搭建(验证码如何在页面中使用)

    仿联想商城laravel实战---2.后端页面搭建(验证码如何在页面中使用) 一.总结 一句话总结: 放在img里面,img的src就是生产验证码的控制器路径: img src="/admi ...

  8. js定时器以及验证码倒计时案例

    定时器 setTimeout()定时器 setTimeout()方法用于设置一个定时器,该定时器在定时器到期后执行调用函数 <script>//setTimeout 语法规范//1.win ...

  9. 表单验证(验证手机号是否存在,验证码倒计时)

    话不投机,话就多,直接上代码 css代码: html代码: <form method="post" id="form_hroizon" enctype=& ...

最新文章

  1. 22.2. 表管理(Table)
  2. 如何编写高质量CSS
  3. Fabric--测试链码
  4. Johnny and Another Rating Drop CodeForces - 1362C(规律)
  5. nacos集群的ap cp切换_阿里Nacos-配置-多环境
  6. MVC 配置路由 反复走控制其中的action (int?)
  7. 静态内容负载均衡的具体实现-续《几百元搞定大型网站》
  8. JQuery 使用笔记 2013.09.05
  9. php网站建设步骤,「php环境搭建」简单6个步骤教会你快速搭建一个网站(windows环境) - seo实验室...
  10. 互联网医院远程医疗在线问诊药品商城处方流转系统源码spring boot+vue全开源
  11. HTML制作菜鸟教程网站首页
  12. 文本编辑器(vim)
  13. 我的ROS学习之路——动起来的小海龟
  14. 学习笔记:PIE-Engine监督分类
  15. fullcalendar的使用教程
  16. 5y计算机应用选择题答案,2016年电大网考计算机应用基础统考试题模拟真题及答案 含小抄复习资料推荐.docx...
  17. 【每日一题 】修改成绩 、杀手问题
  18. We should: Good Good Study, Day Day Up
  19. ALC(访问控制列表)
  20. nRF52832-Bluefruit52学习之MicroPython开发(1)-- 简介

热门文章

  1. 牵手泰隆银行,DevSuite助力IT项目研发管理新飞跃
  2. Teeing,java原生api的隐藏宝藏
  3. 电商网站搭建——什么是Nginx?常见web服务器有哪些?
  4. 纸牌屋第一季/全集House of Cards迅雷下载
  5. 遨游浏览器的操作技巧
  6. 工作问题:如何获取汉字拼音首字母?一般用于通讯录建设
  7. 平面设计中的图形与空间有什么用
  8. 分享99个ASP影音娱乐源码,总有一款适合您
  9. css实现霓虹灯特效字体
  10. Solidworks 零件自定义“属性名称”清单