栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

android 长时间未操作页面退出登录和跳转首页

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

android 长时间未操作页面退出登录和跳转首页

需求是进入应用主页后,当一段时间后未做任何触屏动作时,系统自动清空登录信息和跳转到首页。当每次有触屏动作的时候则修改上次动作时间。

实现方式是启动一个记时器,让计时器每两秒执行一次检查当前时间与上次操作的时间间隔是否大于需要设置的间隔,满足条件时,先关闭计时器,然后进行相应的跳转,注意页面按钮的跳转也需要先关闭计时器后再操作,防止异常出现。代码如下:

    private Timer mTimer; // 计时器,每2秒执行一次任务
    private  MyTimerTask mTimerTask; // 计时任务,判断是否未操作时间到达ns
    private  long mLastActionTime; // 上一次操作时间
    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
        mLastActionTime = System.currentTimeMillis();
        LogUtils.e("=mLastActionTime=",mLastActionTime+"");
        //ToastUtil.showShort(homePageActivity.this, "正在点击屏幕");
        //Log.e(TAG, "正在点击屏幕");
        return super.dispatchTouchEvent(ev);
    }

    private class MyTimerTask extends TimerTask {

        @Override
        public void run() {
            //Log.e(TAG, "计时中……");
            // 3分钟未操作停止计时并退出登录
            LogUtils.e("=1=","主页屏幕未操作检查");
            LogUtils.e("=主页操作间隔时间=",(System.currentTimeMillis() - mLastActionTime)/1000 +"");
            if (System.currentTimeMillis() - mLastActionTime > 1000 * 60 * 3) {
                stopTimer();
                boolean loginFlag = loginCheck();
                if(loginFlag == true) {//登录了,退出后跳首页
                    SharedPreferencesUtil.remove(homePageActivity.this,"studentAccent");
                    SharedPreferencesUtil.remove(homePageActivity.this,"passwd");
                    SharedPreferencesUtil.remove(homePageActivity.this,"studentId");
                    SharedPreferencesUtil.remove(homePageActivity.this,"studentName");
                    SharedPreferencesUtil.remove(homePageActivity.this,"sessionId");
                    SharedPreferencesUtil.remove(homePageActivity.this,"sessionExpires");
                    SharedPreferencesUtil.remove(homePageActivity.this,"regFlag");
                    Intent intent = new Intent(homePageActivity.this, FullscreenActivity.class);
                    startActivity(intent);
                } else {//未登录,跳首页
                    Intent intent = new Intent(homePageActivity.this, FullscreenActivity.class);
                    startActivity(intent);
                }
            }

        }
    }

    public void stopTimer() {
        LogUtils.e("=1=","主页定时任务关闭");
        mTimer.cancel();
    }

    private void startTimer() {
        LogUtils.e("=1=","主页定时任务启动");
        mTimer = new Timer();
        mTimerTask = new MyTimerTask();
        // 初始化上次操作时间为登录成功的时间
        mLastActionTime = System.currentTimeMillis();
        // 每过1s检查一次
        mTimer.schedule(mTimerTask, 0, 2000);
        //Log.e(TAG, "登录成功开始计时");
    }

因为我们应用的首页显示了登录信息,所以也需要进行监控(原理同上),同时出现了若登录并且长时间未操作需要清空登录信息并刷新首页(而非上边主页的清空和跳转动作),因此需要在清空登录信息后添加关闭计时器和刷新代码,如下:

以上就完成了主页监控长时间未操作则退出登录和跳转到首页,首页则监控长时间未操作则退出登录和刷新。

参考链接:https://www.csdn.net/tags/MtTaEgysMTgwODE5LWJsb2cO0O0O.html

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/996327.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号