当前位置: 首页 > article >正文

Android 无操作之后定时退出

 android定时器监用户听对页面无操作5分钟退出登录实现 - 简书

private long advertisingTime = 600000;///定时结束退出登录10分(分钟)=600000毫秒
    public CountDownTimer countDownTimer;

    @Override
    protected void onResume() {
        super.onResume();
        //启动定时
        if (isTimedExitApp()) {
            startClock();
        }
    }

    @Override
    protected void onPause() {
        super.onPause();
        if (countDownTimer != null) {
            countDownTimer.cancel();
            countDownTimer = null;
        }
    }

    /**
     * @return 页面是否开启无操作定时退出
     */
    public boolean isTimedExitApp() {
        return true;
    }

    /**
     * 计时
     */
    public void startClock() {
        if (countDownTimer == null) {
            countDownTimer = new CountDownTimer(advertisingTime, 1000) {//登录状态是时页面5分钟没有操作弹窗提示
                @Override
                public void onTick(long millisUntilFinished) {
                }

                @RequiresApi(api = Build.VERSION_CODES.O)
                @Override
                public void onFinish() {
                    timedExitAppTimeEnd();
                    //定时结束后的操作
                    if (countDownTimer != null) {
                        countDownTimer.cancel();
                    }
                }
            };
            countDownTimer.start();
        } else {
            countDownTimer.start();
        }
    }

    /**
     * 定时退出时间到
     */
    public void timedExitAppTimeEnd() {
    }

    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
        if (!isTimedExitApp()) {
            return super.dispatchTouchEvent(ev);
        }
        switch (ev.getAction()) {
            case MotionEvent.ACTION_DOWN:
                //有按下动作时取消定时
                if (countDownTimer != null) {
                    countDownTimer.cancel();
                }
                break;
            case MotionEvent.ACTION_UP:
                //抬起时启动定时
                startClock();
                break;
        }
        return super.dispatchTouchEvent(ev);
    }


http://www.kler.cn/a/229802.html

相关文章:

  • windows中,git bash 使用conda命令
  • spark——RDD算子集合
  • 【ROS2】Qt事件循环和ROS2订阅机制一起使用有什么注意事项?
  • 用c实现C++类(八股)
  • 混合专家模型 (MoE)笔记摘要
  • JS进阶--JS听到了不灭的回响
  • 代码随想录算法训练营第二八天 | 分割 子集
  • Python 调用 OpenAI ChatGPT API
  • leetcode-top100链表专题二
  • Django通过Json配置文件分配多个定时任务
  • 比较两次从接口获取的数据,并找出变动的字段
  • 071:vue中过滤器filters的使用方法(图文示例)
  • Z函数的原理和应用:以Python为例
  • 微信自动预约小程序开发指南:从小白到专家
  • HiSilicon352 android9.0 开机视频调试分析
  • Micro micro controller一览
  • window 安装 jenkins 编写脚本
  • Linux 网络:PTP 简介
  • 5-3、S曲线生成器【51单片机+L298N步进电机系列教程】
  • 解决:VSCode 连接服务器时出错:Could not establish connection to : XHR failed
  • Vivado-IP核
  • 挑战杯 python+opencv+机器学习车牌识别
  • Maven:设定项目编码
  • 全链游戏的未来趋势与Bridge Champ的创新之路
  • python进行批量搜索匹配替换文本文字的matlab操作实例
  • 【Mysql】事务的隔离级别与 MVCC