android实现退出功能,Android小技巧:如何实现“再按一次退出程序”效果

3dab35223b79

前言

各位程序猿是否经常会接到如下图的“再按一次退出程序”的小功能需求?

3dab35223b79

实例

该功能的实现方式有很多种,最常见的是:

多线程Handler()

计时器Timetask()

但个人认为使用上述方法存在的问题是:

杀猪并不需要用牛刀,大材小用

实现步骤复杂

消耗系统更多的资源

今天,我将分享一种简单方便、不耗系统资源的方法来实现这个小功能

目录

3dab35223b79

目录

1. 功能的意义

作为一名程序猿,理解功能的使用场景能有助于选择更好地方式进行功能开发:

问:为什么要做一个让用户点两次才能退出的功能呢?这不是明显加大了用户退出的操作成本吗?

答:对于移动使用场景,用户的注意力分散,容易出现误操作行为,通过点击两次才能退出是为了降低用户误操作退出的概率

2. 功能实现逻辑

一张流程图让你一目了然

3dab35223b79

功能逻辑

3. 具体代码实现

相信你已经很清楚这个功能的逻辑了,接下来,我们来看下如何通过代码实现

具体实现的关键:通过在需要退出页面的Activity里复写onKeyDown()方法实现功能逻辑,从而实现该功能。

具体代码实现

MainActivity.java

//声明一个long类型变量:用于存放上一点击“返回键”的时刻

private long mExitTime;

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

//判断用户是否点击了“返回键”

if (keyCode == KeyEvent.KEYCODE_BACK) {

//与上次点击返回键时刻作差

if ((System.currentTimeMillis() - mExitTime) > 2000) {

//大于2000ms则认为是误操作,使用Toast进行提示

Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();

//并记录下本次点击“返回键”的时刻,以便下次进行判断

mExitTime = System.currentTimeMillis();

} else {

//小于2000ms则认为是用户确实希望退出程序-调用System.exit()方法进行退出

System.exit(0);

}

return true;

}

return super.onKeyDown(keyCode, event);

}

4.补充说明

如果你对于系统默认的Toast样式不满意,你可以进行样式的自定义

5. 总结

能满足需求,简单、方便,希望大家都能学会这种实用的功能实现方法

接下来,我会继续讲解Android开发中其他知识,感兴趣的同学可以继续关注本人运营的Wechat Public Account:

请点赞!因为你的鼓励是我写作的最大动力!

不定期分享关于安卓开发的干货,追求短、平、快,但却不缺深度。

3dab35223b79

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值