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

一般app应该都会有这个需求,多久对页面没有操作就会退出登录,这里的实现方法用定时器。
1、思路
1)写一个基础的BaseActivity;
2)让其他所有页面的Activity都继承这个BaseActivity;
3)在BaseActivity里监听有无页面操作;
4)在OnResume中启动计时器;
5)在dispatchTouchEvent中监听有动作是取消计时,抬起动作是启动计时器;
6)计时结束就调退出登录。
2、BaseActivity里关键代码

    private long advertisingTime = 300 * 1000;///定时结束退出登录5分(分钟)=300000毫秒
    public CountDownTimer countDownTimer;
    @Override
    protected void onResume() {
        super.onResume();
        //启动定时
        isLogout();
    }
    /**
     * 计时
     */
    public void isLogout() {
        if ("1".equals(login)) {//已登录状态
            if (countDownTimer == null) {
                countDownTimer = new CountDownTimer(advertisingTime, 300000) {//登录状态是时页面5分钟没有操作弹窗提示
                    @Override
                    public void onTick(long millisUntilFinished) {
                    }
                    @RequiresApi(api = Build.VERSION_CODES.O)
                    @Override
                    public void onFinish() {
                        //定时结束后的操作
                        Logout();//退出登录
                        if (countDownTimer != null) {
                            countDownTimer.cancel();
                        }
                    }
                };
                countDownTimer.start();
            } else {
                countDownTimer.start();
            }
        }
    }
   @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
        switch (ev.getAction()) {
            case MotionEvent.ACTION_DOWN:
                //有按下动作时取消定时
                if (countDownTimer != null){
                    countDownTimer.cancel();
                }
                break;
            case MotionEvent.ACTION_UP:
                //抬起时启动定时
                isLogout();
                break;
        }
        return super.dispatchTouchEvent(ev);
    }

完结。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,471评论 2 59
  • 一、背景 我们平时做系统为了保证用户操作数据的安全性,很多时候当用户长时间不再操作电脑的时候,应该给用户自动退出系...
    NewForMe阅读 7,412评论 0 13
  • Java基础 什么是重载,什么是重写?有什么区别?重载(Overload):(1)Overloading是一个类中...
    勤息嘻嘻嘻阅读 3,813评论 0 1
  • 面试的时候总会遇到一些各种各样的面试题,而且这些面试题很多都是关于平时容易疏忽的理论方面的,所以整理一份Andro...
    hydCoder阅读 9,695评论 5 88
  • 二、Android面试题 Android面试题包括Android基础,还有一些源码级别的、原理这些等。所以想去大公...
    上善若水0819阅读 9,042评论 0 6