android 关闭自动更新时间,android长时间没有操作自动关闭

该博客介绍了一种在Android应用中实现用户无操作自动退出的方法。通过监听触摸和按键事件,记录最后操作时间,并使用CountDownTimer定时器来检查用户是否在设定时间内(如2分钟)未进行任何操作。如果超过指定时间,则调用回调方法执行相应操作,如显示广告或返回主页。此功能有助于提高应用的用户体验和交互设计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在一些项目里面有需求是如果用户长时间没有操作的话就需要进行其他的操作,比如显示广告或者返回主页。

那么android里面如何实现呢?android里面只要判断一些触摸和按键事件有没有触发,记录下上次的触发时间,

开定时器判断如果长时间没有操作就退出,代码如下:

public abstract class UserHeartActivity extends AppCompatActivity{

private int closeTime = 2 * 60 * 1000; //2分钟过后没有操作就退出

protected boolean openCloseTimer = false; //关闭定时器开关

private CountDownTimer closeTimer; //定时器

protected long lastClickTime = 0; //上次操作时间

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

}

/**

* 设置自动关闭定时器

* @param flag true为打开

*/

protected void setCloseTimerFlag(boolean flag){

openCloseTimer = flag;

}

/**

* 开启自动关闭定时器

*/

protected void startCloseTimer() {

stopCloseTimer();

if (openCloseTimer) {

closeTimer = new CountDownTimer(closeTime, closeTime) {

@Override

public void onTick(long millisUntilFinished) {

}

@Override

public void onFinish() {

// Log.d("---", "onFinish" + (System.currentTimeMillis() - lastClickTime));

if (System.currentTimeMillis() - lastClickTime >= closeTime) {

closeCallBack();

} else {

startCloseTimer();

}

}

}.start();

}

}

/**

* 停止自动关闭定时器

*/

protected void stopCloseTimer() {

if (closeTimer != null) {

closeTimer.cancel();

}

}

/**

* 自动关闭时的回调

*/

protected void closeCallBack(){}

@Override

protected void onResume() {

super.onResume();

startCloseTimer();

}

@Override

protected void onPause() {

super.onPause();

stopCloseTimer();

}

@Override

public boolean dispatchTouchEvent(MotionEvent ev) {

if (ev.getAction() == MotionEvent.ACTION_DOWN) {

if (openCloseTimer) lastClickTime = System.currentTimeMillis(); //记录按下时间

}

return super.dispatchTouchEvent(ev);

}

@Override

public boolean dispatchKeyEvent(KeyEvent event) {

if (openCloseTimer) lastClickTime = System.currentTimeMillis();//记录按下时间

return super.dispatchKeyEvent(event);

}

}

记录每次事件的时间,CountDownTimer 作为定时器每次时间到了判断一下跟上次的时间,如果到了就执行方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值