Android实现退出整个应用程序代码;
来源:互联网 发布:windows 2008 r2 编辑:程序博客网 时间:2024/04/30 02:40
工作上需要实现双击退出应用程序的效果,在网上看到有什么System.exit(0);,运行下来,然而这并不能实现退出应用程序,而只是退出当前activity;和finish效果差不多;
后来有一种思路就是,每打开一个activity,就把当前activity保存在一个List当中,若需要退出整个应用,就是将集合clear一下就可以实现;
public class MyApplication extends Application { private static Stack<Activity> activityStack; private static MyApplication singleton; @Override public void onCreate() { super.onCreate(); singleton=this; } // Returns the application instance public static MyApplication getInstance() { return singleton; } /** * add Activity 添加Activity到栈 */ public void addActivity(Activity activity){ if(activityStack ==null){ activityStack =new Stack<Activity>(); } activityStack.add(activity); } /** * get current 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.remove(activity); activity.finish(); activity = null; } } /** * 结束指定类名的Activity */ public void finishActivity(Class<?> cls) { for (Activity activity : activityStack) { if (activity.getClass().equals(cls)) { finishActivity(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(); } /** * 退出应用程序 */ public void AppExit() { try { finishAllActivity(); } catch (Exception e) { } }}
然后创建一个baseActivity,在oncreate方法中调用
MyApplication.getInstance().addActivity(this);在onDestroy方法中调用
MyApplication.getInstance().finishActivity(this);最后写一个双击退出程序的方法;
/** * 重复按下返回键退出app方法 */public void exitBy2Click() {Timer tExit = null;if (isExit == false) {isExit = true; // 准备退出String doubleClick = (String) getString(R.string.double_click_back);Toast.makeText(this, doubleClick, Toast.LENGTH_SHORT).show();tExit = new Timer();tExit.schedule(new TimerTask() {@Overridepublic void run() {isExit = false; // 取消退出}}, 2000); //如果2秒钟内没有按下返回键,则启动定时器取消掉刚才执行的任务} else {GosApplication.getInstance().AppExit();}}
0 0
- Android实现退出整个应用程序代码;
- Android 退出整个程序代码
- android退出整个应用
- android 退出整个应用
- Android退出整个应用
- Android App 退出整个应用
- android中如何实现连续点击返回键退出整个应用 android两次返回退出应用
- 解决android退出整个应用方法
- Android之退出整个应用方法之一
- Android退出整个应用之完美解决方案
- Android学习 - 退出整个应用方法
- Android之退出整个应用方法之一
- 退出整个Android 应用的方法
- Android之退出整个应用方法之一
- Android退出整个应用的方法
- Android 完全退出整个应用 不在栈底也能退出
- Android 完全退出整个应用 不在栈底也能退出
- android退出程序代码总结
- java 通过模板导出excel
- 关于 1<<0 的意义
- 关于rand和srand函数使用的一点心得
- C++ 算法笔试十题
- SPFA 模板
- Android实现退出整个应用程序代码;
- 排序算法 之 插入排序InsertionSort
- Ubuntu下slickedit的安装与配置
- 改HTML5里的input标签的required属性的提示为英文的
- POJ 1740 A New Stone Game【博弈】
- java之生产者消费者模式
- 4-5 报数 (20分)
- 欢迎使用CSDN-markdown编辑器
- Swift-常量与变量