Android实现退出整个应用程序代码;
2016-07-30 17:01
441 查看
工作上需要实现双击退出应用程序的效果,在网上看到有什么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 = activ 4000 ityStack.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();}}
相关文章推荐
- android 实现完全退出应用程序的代码
- android 完全退出应用程序实现代码
- android 应用程序退出代码实现
- android 完全退出应用程序实现代码
- Android 完全退出应用程序实现代码
- Android 怎么退出整个应用程序
- android系统退出代码实现
- android多activity退出整个程序的一个实现
- Android 实现再按一次后退键退出应用程序
- Android 怎么退出整个应用程序?
- android 再按一次退出程序(实现代码)
- Android 怎么退出整个应用程序? .
- Android 怎么退出整个应用程序?
- (转)android多activity退出整个程序的一个实现
- Android 退出整个程序代码
- Android 应用程序多Activity跳转之后退出整个程序
- Android 怎么退出整个应用程序?
- Android 关于长按back键退出应用程序的实现
- android多activity退出整个程序的一个实现
- Android 怎么退出整个应用程序?