android实现点击两次back键退出应用
来源:互联网 发布:便宜淘宝店 编辑:程序博客网 时间:2024/06/07 10:42
经常用到app中手指一不小心点了返回键就退出了应用,用户体验不太好,万一用户不是想退出应用呢?所以这个时候提议在用户第一次点击返回键的时候,提示用户您确定要退出应用吗?这里就简单的处理一下这个逻辑,也就是在用户第一次点击返回键的时候,记录当前时间的毫秒值,第二次点击返回键的时候在获取一下当前时间的毫秒值,然后设定一个固定的时间差作为评判标准,如果两次的时间差大于我们规定的时间差,就认为第一次点击无效,再次提示用户您确定要退出应用吗?如果两次点击的时间差小于我们固定的时间差,就退出应用。下面是代码:
private boolean isPressedBackOnce = false;
private long firstPressedTime = 0;
private long secondPressedTime = 0;
@Override
public void onBackPressed() {
if (isPressedBackOnce) {
// 说明已经按了一次 这是第二次
secondPressedTime = System.currentTimeMillis();
if (secondPressedTime - firstPressedTime > 2000) {
// 第一次点击作废了,重新计算
Toast.makeText(this, "再点一次退出", 0).show();
isPressedBackOnce = true;
firstPressedTime = System.currentTimeMillis();
} else {
// 说明两秒之内点击的第二次
finish();
// 状态回复至初
isPressedBackOnce = false;
firstPressedTime = 0;
secondPressedTime = 0;
}
} else {
// 说明第一次
Toast.makeText(this, "再点一次退出", 0).show();
isPressedBackOnce = true;
firstPressedTime = System.currentTimeMillis();
}
}
上面只是简单的写了一个双击退出的逻辑,在这里也可以添加一个ActivityManger类,管理整个进程的Activity,在退出的时候,遍历关闭所有的界面。在上面调用finish的时候调用ActivityManger.killAll();就可以退出所有的activity。
public static class ActivityManger {
private static Stack<Activity> activities = new Stack<>();
//事先写好一个基类,所有的activity都继承这个基类,在基类中调用该方法
public static void add(Activity activity) {
activities.add(activity);
}
//在某个activity中调用此方法,可以删除自己
public static void remove(Activity activity) {
activities.remove(activity);
}
//清空存放activity的集合
public static void clear() {
activities.clear();
}
//在退出应用的时候遍历关闭所有的activity
public static void killAll() {
for (Activity activity : activities) {
activity.finish();
}
}
}
有兴趣的还可以添加一个结束动画之类的,我就不写了.
private boolean isPressedBackOnce = false;
private long firstPressedTime = 0;
private long secondPressedTime = 0;
@Override
public void onBackPressed() {
if (isPressedBackOnce) {
// 说明已经按了一次 这是第二次
secondPressedTime = System.currentTimeMillis();
if (secondPressedTime - firstPressedTime > 2000) {
// 第一次点击作废了,重新计算
Toast.makeText(this, "再点一次退出", 0).show();
isPressedBackOnce = true;
firstPressedTime = System.currentTimeMillis();
} else {
// 说明两秒之内点击的第二次
finish();
// 状态回复至初
isPressedBackOnce = false;
firstPressedTime = 0;
secondPressedTime = 0;
}
} else {
// 说明第一次
Toast.makeText(this, "再点一次退出", 0).show();
isPressedBackOnce = true;
firstPressedTime = System.currentTimeMillis();
}
}
上面只是简单的写了一个双击退出的逻辑,在这里也可以添加一个ActivityManger类,管理整个进程的Activity,在退出的时候,遍历关闭所有的界面。在上面调用finish的时候调用ActivityManger.killAll();就可以退出所有的activity。
public static class ActivityManger {
private static Stack<Activity> activities = new Stack<>();
//事先写好一个基类,所有的activity都继承这个基类,在基类中调用该方法
public static void add(Activity activity) {
activities.add(activity);
}
//在某个activity中调用此方法,可以删除自己
public static void remove(Activity activity) {
activities.remove(activity);
}
//清空存放activity的集合
public static void clear() {
activities.clear();
}
//在退出应用的时候遍历关闭所有的activity
public static void killAll() {
for (Activity activity : activities) {
activity.finish();
}
}
}
有兴趣的还可以添加一个结束动画之类的,我就不写了.
0 0
- Android 实现点击两次BACK键退出应用
- Android 实现点击两次BACK键退出应用
- Android 实现点击两次BACK键退出应用
- Android 实现点击两次BACK键退出应用
- Android 实现点击两次BACK键退出应用
- android实现点击两次back键退出应用
- Android 实现点击两次BACK键退出应用
- Android 实现点击两次BACK键退出应用
- Android实现点击两次Back退出程序
- Android实现点击两次back退出APP
- android 两次点击back键退出程序
- Android点击两次Back键退出程序
- Android 点击back键两次退出程序
- android 点击两次back 键退出app
- android 实现按两次back键提示退出应用界面
- Android 两次按Back键退出应用
- 两次点击BACK键退出应用的效果
- 工具类整理--两次点击BACK键,退出应用的实现
- 栈的构造
- 数据库设计注意事项
- 滚动视图滚动至顶部
- HTTPS的七个误解(译文)
- Hibernate 删除对象关联集合遇到的问题
- android实现点击两次back键退出应用
- JS模块化-历史、构建工具
- ionic 中默认安装后导航在底部解决方案
- ubuntu 启动tomcat脚本
- IOS 圆形图片
- 私有云之殇:公有云这座大山(上)
- setsockopt的作用
- MediaPlayer详解
- dirtycow