android 点击两次back 键退出app
来源:互联网 发布:pf软件 编辑:程序博客网 时间:2024/05/21 09:56
首先建立一个管理类 管理堆栈
public class AppManager {
private static Stack activityStack;
private static AppManager instance;
private AppManager(){}/** * 单一实例 */public static AppManager getAppManager(){ if(instance==null){ instance=new AppManager(); } return instance;}/** * 添加Activity到堆栈 */public void addActivity(Activity activity){ if(activityStack==null){ activityStack=new Stack<Activity>(); } activityStack.add(activity);}/** * 获取当前Activity(堆栈中最后一个压入的) */public Activity currentActivity(){ Activity activity=activityStack.lastElement(); return activity;}/** * 结束所有Activity */public void finishAllActivity(){ for (int i = 0, size = activityStack.size(); i < size; i++){ if (null != activityStack.get(i)){ activityStack.get(i).finish(); } } activityStack.clear();}
}
第二 建立一个BaseActivity 写一些公共方法 等等 在此我们只操作让activity 加入到堆栈并管理
public class BaseActivity extends Activity {
@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); //将Activity实例添加到AppManager的堆栈 AppManager.getAppManager().addActivity(this);}@Overrideprotected void onDestroy() { super.onDestroy(); //将Activity实例从AppManager的堆栈中移除 AppManager.getAppManager().finishActivity(this);}long firstTime=0;@Overridepublic boolean onKeyUp(int keyCode, KeyEvent event) { if(keyCode==KeyEvent.KEYCODE_BACK){ //KEYCODE_BACK:回退键 long secondTime= System.currentTimeMillis(); if (secondTime-firstTime>2000){ Toast.makeText(AppManager.getAppManager().currentActivity(), "再按一次退出程序", Toast.LENGTH_SHORT).show(); firstTime=System.currentTimeMillis(); return true; }else{ AppManager.getAppManager().finishAllActivity(); Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); this.startActivity(intent); System.exit(0); } } return super.onKeyUp(keyCode, event);}
}
然后重写onkeydown 方法 在这个方法中执行退出程序的方法 定义一个时间记录 判断一下点击间隔 然后提示客户是否退出应用等等
AppManager.getAppManager().finishAllActivity(); 这个方法可写可不写 看你需求 你需要记录堆栈记录的话 可以不写 如果你不需要 直接进入到你的mainactivity 就可以加上了
让所有的activity都继承BaseActivity 在此处监听 可以监听所有的activity 任何地方都可以退出程序
当然也可以在你需要的activity里面执行监听 重写onkeydown 方法就可以
阅读全文
0 0
- android 点击两次back 键退出app
- Android实现点击两次back退出APP
- android 两次点击back键退出程序
- Android点击两次Back键退出程序
- Android 点击back键两次退出程序
- Android连续点击两次Back键退出程序 分类: Android
- [Android] Android 两次Back键点击退出程序
- Android点击两次返回键退出App
- 点击两次back 退出
- Android连续点击两次Back键退出程序
- Android连续点击两次Back键退出程序
- Android 实现点击两次BACK键退出应用
- Android连续点击两次Back键退出程序
- Android 实现点击两次BACK键退出应用
- android,连续点击两次back键退出应用程序
- Android连续点击两次Back键退出程序
- Android连续点击两次Back键退出程序
- Android连续点击两次Back键退出程序
- Eclipse IDE中设置JVM启动参数
- 根据Java实体自动生成MyBatis的ResultMap
- Java多线程编程总结
- 六个人如何运维一万台服务器?
- ubuntu 查看隐藏文件的两种方法
- android 点击两次back 键退出app
- atoi函数算法分析(字符串转换为相应的整型数)
- 如何在k8s集群中安装nvidia、cuda并使用GPU进行训练
- HDoj 1033 Edge (英语理解题)
- RxJava操作符记录
- 机器学习系统模型调优实战--所有调优技术都附相应的scikit-learn实现
- 下拉刷新数据
- Human Pose Matching on mobile — a fun application using Human Pose Estimation (Part 1 Intro)
- Tomcat8+Spring-Security 启用安全通道(https)的一步步实现