前言
项目需要实现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)
本文介绍如何在Android项目中实现Dialog在用户无操作时自动退出的功能。通过核心代码展示如何设置定时器,并在指定时间后关闭Dialog,以提升用户体验。
2426





