android实现点击两次back键退出应用
2016-11-09 15:53
537 查看
经常用到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();
}
}
}
有兴趣的还可以添加一个结束动画之类的,我就不写了.
相关文章推荐
- Android 实现点击两次BACK键退出应用
- Android 实现点击两次BACK键退出应用
- Android 实现点击两次BACK键退出应用
- Android实现点击两次BACK键退出应用
- Android Back键点击两次退出应用详解及实现方法总结
- 【android随笔】工具类整理--两次点击BACK键,退出应用的实现
- Android 实现点击两次BACK键退出应用
- Android 实现点击两次BACK键退出应用
- Android 实现点击两次BACK键退出应用
- Android 实现点击两次BACK键退出应用
- Android实现点击两次Back退出程序
- Android应用实现点击back键时,使应用返回桌面,而不是退出应用,类似微信,qq等聊天软件
- Android 实现点击两次返回键退出应用
- android 实现按两次back键提示退出应用界面
- android中如何实现连续点击返回键退出整个应用 android两次返回退出应用
- 在android中如何实现在应用首页按两次返回键(back)退出应用
- [置顶] Android实现点击两次返回键和长按返回键退出应用实践
- Android实现点击两次back退出APP
- 【转载】Android实现点击两次返回键退出应用
- 在应用的MainActivity中实现连续点击两次Back键后才退出应用