【Android】System.exit(0) 退出程序
2015-11-18 13:02
519 查看
许多 Android 应用程序都是连续点击两下返回键时退出程序,代码如下:
参考链接:Android中的“再按一次返回键退出程序”实现
此外,有人提到了 Stack Overflow 上的解决方案,有很多,未细看,这里先把链接贴出来:Android: clicking TWICE the back button to exit activity
前者使用的时候遇到了一些问题:应用程序退出之后又重启了!
上网查找后发现有说法是:有 Activity 没有 finish.
果不其然,这里可能是单单一个 finish() 方法不足以 finish 所有的 Activity, 可以写一个方法来实现,代码如下(这里仅供参考):
这样做之后问题就解决了~
private long exitTime = 0; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){ if((System.currentTimeMillis()-exitTime) > 2000){ Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show(); exitTime = System.currentTimeMillis(); } else { finish(); //这行代码可能会有些问题 System.exit(0); } return true; } return super.onKeyDown(keyCode, event); }
参考链接:Android中的“再按一次返回键退出程序”实现
此外,有人提到了 Stack Overflow 上的解决方案,有很多,未细看,这里先把链接贴出来:Android: clicking TWICE the back button to exit activity
前者使用的时候遇到了一些问题:应用程序退出之后又重启了!
上网查找后发现有说法是:有 Activity 没有 finish.
果不其然,这里可能是单单一个 finish() 方法不足以 finish 所有的 Activity, 可以写一个方法来实现,代码如下(这里仅供参考):
private static Stack<Activity> activityStack; public void finishAllActivity() { for (int i = 0, size = activityStack.size(); i < size; i++) { if (null != activityStack.get(i)) { activityStack.get(i).finish(); } } activityStack.clear(); }
这样做之后问题就解决了~
相关文章推荐
- Android中TelephonyMnager的使用
- Android线程间通信(一):Message
- android事件分发机制
- android-Viewflow开源项目学习
- JNI学习积累之三 ---- 操作JNI函数以及复杂对象传递
- JNI学习积累之一 ---- 常用函数大全
- Android编程根据系列图片绘制动画实例总结
- Android AIDL的简单例子
- 一篇文章看懂Android学习最佳路线
- 疯狂Android之图片浏览器
- Android编程向服务器发送请求时出现中文乱码问题的解决方法
- android中onInterceptTouchEvent()方法详解
- 54、Android 粒子效果之雨(下雨的效果)
- Android 内核解剖 - AMS(Activity Manager Service)
- Android编程实现QQ表情的发送和接收完整实例(附源码)
- Android开发教程:数据储存之SharedPreferences
- 关于在5.0上沉浸式布局虚拟按键的问题
- 关于Android生命周期方法调用return的问题
- 说说Android无限轮播的那些事
- android源码浅析--AlertController