Android 实现双击退出的功能

实现android双击后退键退出当前APP功能

实现该功能基本思路是,

1, 监听后退键 , 比较两次后退间隔 , 低于两秒则出发退出

2, 退出当前APP

我选择在基类中BaseActivity 中设置监听,代码如下:

public void onBackPressed() { //Preferences 中获取是否双击退出 boolean isDoubleClick = true; //BaseApplication.get("ifDoubleClickedBack", true); if (isDoubleClick) { long curTime = SystemClock.uptimeMillis(); if ((curTime - mBackPressedTime) < (2 * 1000)) { finish(); //activity栈管理 AppManager.getAppManager().AppExit(); } else { mBackPressedTime = curTime; Toast.makeText(this, "再次点击退出", Toast.LENGTH_SHORT).show(); } } else { finish(); } }

在退出当前APP中,参考开源中国,封装了activity栈

实例代码:

public class AppManager { private static Stack<Activity> activityStack; private static AppManager instance; private AppManager() { } /** * 单一实例 */ public static AppManager getAppManager() { if (instance == null) { instance = new AppManager(); } if (activityStack == null) { activityStack = new Stack<Activity>(); } return instance; } /** * 获取指定的Activity * * @author kymjs */ public static Activity getActivity(Class<?> cls) { if (activityStack != null) for (Activity activity : activityStack) { if (activity.getClass().equals(cls)) { return activity; } } return null; } /** * 添加Activity到堆栈 */ public void addActivity(Activity activity) { activityStack.add(activity); } /** * 获取当前Activity(堆栈中最后一个压入的) */ public Activity currentActivity() { Activity activity = activityStack.lastElement(); return activity; } /** * 结束当前Activity(堆栈中最后一个压入的) */ public void finishActivity() { Activity activity = activityStack.lastElement(); finishActivity(activity); } /** * 结束指定的Activity */ public void finishActivity(Activity activity) { if (activity != null && activityStack.contains(activity)) { activityStack.remove(activity); activity.finish(); } } /** * 结束指定的Activity */ public void removeActivity(Activity activity) { if (activity != null && activityStack.contains(activity)) { activityStack.remove(activity); } } /** * 结束指定类名的Activity */ public void finishActivity(Class<?> cls) { for (Activity activity : activityStack) { if (activity.getClass().equals(cls)) { finishActivity(activity); break; } } } /** * 结束所有Activity */ public void finishAllActivity() { for (int i = 0, size = activityStack.size(); i < size; i++) { if (null != activityStack.get(i)) { finishActivity(activityStack.get(i)); } } activityStack.clear(); } /** * 退出应用程序 */ public void AppExit() { try { finishAllActivity(); // System.exit(0); } catch (Exception e) { } } }

思路就是在每次activity 压入activity栈中管理

在退出时遍历栈,挨个finish

希望本文所述对大家的Android程序设计有所帮助。

时间: 2024-10-24 18:33:25

Android 实现双击退出的功能的相关文章

Android 实现双击退出的功能_Android

实现android双击后退键退出当前APP功能 实现该功能基本思路是, 1, 监听后退键 , 比较两次后退间隔 , 低于两秒则出发退出 2, 退出当前APP 我选择在基类中BaseActivity 中设置监听,代码如下: public void onBackPressed() { //Preferences 中获取是否双击退出 boolean isDoubleClick = true; //BaseApplication.get("ifDoubleClickedBack", true)

Android双击退出Activity的类代码

  一个收集的类,Android双击退出Activity的类代码,返回一个双击退出的实例,双击退出Activity,如果msg为null,而默认显示的提示语为"再按一次退出,类很简单,实用性强,代码如下:

Android双击退出的实现方法_Android

本文实例讲述了Android双击退出的实现方法.分享给大家供大家参考.具体实现方法如下: 方式一: 重写onBackPressed方法直接监听返回键(建议高版本用2.0以上) 复制代码 代码如下: @Override  public void onBackPressed() {               long currentTime = System.currentTimeMillis();           if((currentTime-touchTime)>=waitTime) {

Android中双击返回键退出应用实例代码

Android中双击返回键退出程序 1.在MyAppliction中(继承Application) //运用list来保存们每一个activity是关键 private List<Activity> mList = new LinkedList<Activity>(); //为了实现每次使用该类时不创建新的对象而创建的静态对象 private static MyApplication instance; //构造方法 public MyApplication() { } //实例化

Android双击退出的实现方法

本文实例讲述了Android双击退出的实现方法.分享给大家供大家参考.具体实现方法如下: 方式一: 重写onBackPressed方法直接监听返回键(建议高版本用2.0以上) 复制代码 代码如下:@Override  public void onBackPressed() {               long currentTime = System.currentTimeMillis();           if((currentTime-touchTime)>=waitTime) { 

[Android问答] 如何实现“退出应用”功能?

[Android问答] 如何实现"退出应用"功能? 刚从桌面应用开发转做手机开发的同学常常被这个问题困扰--用户按下Home键后,应用不是"完全退出"而是"运行在后台",它仍然占用着系统资源,这么多后台运行的应用必然导致系统变慢,是不是应该在我的应用里给用户提供一个"退出菜单"或"退出按钮"呢? 我在Android开发文档里暂时没有找到关于这个问题的解释,但经过在网上调查很多资料以后,我认为答案是比较明显的

太帅了!Android 5.0十二大新功能详解

2014年10月15日,Google公司发布全新的Android 操作系统Android 5.0 Lollipop(棒棒糖).距离Android系统上一次重大更新还不到一年的时间,Android从4.4 KitKat(巧克力棒)升级到了Lollipop(棒棒糖).和每年的惯例一样,Google惯例推出自家品牌Nexus phone和Nexus tablet的新产品.但最大不同是,Android Lollipop的发布成为Android系统有史以来变化最大的一次升级. 12个独特之处,带你快速了解

Android ShareSDK快速实现分享功能_Android

第一步 :获取ShareSDK 为了集成ShareSDK,您首先需要到ShareSDK官方网站注册并且创建应用,获得ShareSDK的Appkey,然后到SDK的下载页面下载SDK的压缩包,解压以后可以得到如下图的目录结构: ShareSDK在"ShareSDK for Android"目录下,此目录中的"Libs"包含"MainLibs"和"OnekeyShare" 分别是ShareSDK的核心库和"快捷分享&qu

Android 微信摇一摇功能实现详细介绍_Android

Android 微信摇一摇功能实现,最近学习传感器,就想实现摇一摇的功能,上网查了些资料,就整理下.如有错误,还请指正. 开发环境 Android Studio 2.2.1 JDK1.7 API 24 Gradle 2.2.1 相关知识点 加速度传感器 补间动画 手机震动 (Vibrator) 较短 声音/音效 的播放 (SoundPool) 案例: 我们接下来分析一下这个案例, 当用户晃动手机时, 会触发加速传感器, 此时加速传感器会调用相应接口供我们使用, 此时我们可以做一些相应的动画效果,