android 界面无操作定时器 - dialog 自动退出方案(应用)

本文介绍如何在Android项目中实现Dialog在用户无操作时自动退出的功能。通过核心代码展示如何设置定时器,并在指定时间后关闭Dialog,以提升用户体验。

前言

项目需要实现dialog在无操作情况下自动退出的功能。
于是学习了一下:Android开发一段时间无操作自动退出登录状态

核心代码

导入:

import java.util.Timer;
import java.util.TimerTask;

类内代码:

 	private  Timer mTimer;           // 计时器,每1秒执行一次任务
    private  MyTimerTask mTimerTask; // 计时任务,判断是否未操作时间到达ns
    private  long mLastActionTime;   // 上一次操作时间

    /**
     *  启动计时任务
     */
    private void startTimer() {
        mTimer = new Timer();
        mTimerTask = new MyTimerTask();
        // 初始化上次操作时间为登录成功的时间
        mLastActionTime = System.currentTimeMillis();
        // 每过1s检查一次
        mTimer.schedule(mTimerTask, 0, 1000);
    }
    /**
     * 点击屏幕时重载计时
     * @param ev
     * @return
     */
    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
        mLastActionTime = System.currentTimeMillis();
        //Log.e(TAG, "正在点击屏幕");
        return super.dispatchTouchEvent(ev);
    }

    /**
     * 停止计时
     */
    public void stopTimer() {
        mTimer.cancel();
    }
    
    /**
     * 计时任务管理
     */
    private class MyTimerTask extends TimerTask {
        @Override
        public void run() {
            // 1分钟未操作停止计时并退出登录 60s*1min
            if (System.currentTimeMillis() - mLastActionTime > 1000 * 60 * 1) {
                stopTimer();// 停止计时任务
                dismiss();  // 关闭弹窗
            }
        }
    }

解析

这部分代码使用时只需要在dialog的初始化函数里调用startTimer();
然后将需要在无操作时执行的函数放在 MyTimerTask 里的判别语句内。

结语

顺利执行功能。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。
ノ)゚Д゚( 奇怪的知识增加了(代码库内容+1)

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值