按后退键退出Android程序
实现起来的思路:
1.捕获后退键被按了这个事件。
- @Override
- public boolean onKeyDown(int keyCode, KeyEvent event) {
- if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
- //按下的如果是BACK,同时没有重复
- //DO SOMETHING
- }
- return super.onKeyDown(keyCode, event);
- }
2.在后退键被按的事件里退出程序
这里也有两种方式:直接退出程序,或者退出到主屏幕。
1)退出程序的方法有两种:
- android.os.Process.killProcess(android.os.Process.myPid());
- System.exit(0);
我试了这两种方法,但是奇怪的是,在1.5模拟器下,程序确实被KILL了,但是马上Android又重新启动了程序。
另外还有一种方式,比较友好,可以释放资源,我觉得可行,就是实现起来麻烦一点,需要逐级退出,重写onResume()方法:
- @Override
- protected void onResume() {
- super.onResume();
- if(mExiting){
- finish();
- }
- }
2)退出到主屏幕
这个比较简单,新建一个主屏幕的Intent就可以。
- Intent home = new Intent(Intent.ACTION_MAIN);
- home.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
- home.addCategory(Intent.CATEGORY_HOME);
- startActivity(home);
我最后采用了按后退键回到主屏幕的方式,实现代码如下:
- @Override
- public boolean onKeyDown(int keyCode, KeyEvent event) {
- if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { // 按下的如果是BACK,同时没有重复
- Intent home = new Intent(Intent.ACTION_MAIN);
- home.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
- home.addCategory(Intent.CATEGORY_HOME);
- startActivity(home);
- }
- return super.onKeyDown(keyCode, event);
- }
按后退键退出Android程序的更多相关文章
- Android 按二次后退键退出应用程序
前言 欢迎大家我分享和推荐好用的代码段~~ 声明 欢迎转载,但请保留文章原始出处: CSDN:http://www.csdn.net ...
- web测试误区:浏览器后退键退出系统会话失效
通过最近测试的项目,认识到实际:浏览器后退键退出系统,会话仍旧有效.打破了之前认为浏览器后退键就会退出系统登录的认知. 一,了解Cookie和Session的作用,具体来说cookie机制采用的是在客 ...
- 退出Android程序时清除所有activity的实现方法
思路: 1. 自定义ActivityList管理类,添加删除维护该list; 2.Activity Stack 类似上面: 3.singleTask定义一个Activity为该启动模式,然后当返回时, ...
- Android 应用按两下返回键退出应用程序
在android应用开发中,有时候应用会用到按两下返回键退出应用的功能,今天介绍一下这个功能,直接上代码: @Override public boolean dispatchKeyEvent(KeyE ...
- Android两次后退键退出
转载请注明出处:http://blog.csdn.net/javacattle/article/details/41964045 仅仅要在 *.Java 文件里加入就可以 private int ba ...
- Android中实现两次点击返回键退出本程序
1,当用户使用我们的app的时候,有时候无意的或者不是有心的按下了我们的返回键,这时候为了更好的用体验,我们需要让用户再一次确定一下,以便判断用户的真实意图 代码如下: //该功能实现退出时提示的功能 ...
- 【Android基础】点击Back键退出应用程序
//第一种方法(弹出对话框) @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-genera ...
- phonegap退出android程序
最近用android做了一个程序,在点“后退”的时候,会不停地后退,感觉不好. 查了些资料有这么些: 一.toast_plugin插件 <script type="text/javas ...
- Apicloud 之按两次后退键退出应用
api.addEventListener({ name: 'keyback' }, function(ret, err) { if (flag == 1) { api.closeWidget({ si ...
随机推荐
- C# 控件不刷新问题
/********************************************************************** * C# 控件不刷新问题 * 说明: * 当网络连接出问 ...
- 一个for列出横纵坐标
h = i % * hCount; v = Math.floor(i / hCount);
- UVa 12558 - Egyptian Fractions (HARD version)
题目大意: 给出一个真分数,把它分解成最少的埃及分数的和.同时给出了k个数,不能作为分母出现,要求解的最小的分数的分母尽量大. 分析: 迭代加深搜索,求埃及分数的基础上,加上禁用限制就可以了.具体可以 ...
- Object类、包装类、内部类详解
1.Object类 1.概念: 1.1 所有类在创建时都默认继承了java.lang.Object 1.2 所有类对象都可以声明为类对象的引用 Object ob1=new String(); Obj ...
- SQL注入测试平台 SQLol -4.UPDATE注入测试
访问首页的update模块http://127.0.0.1/sql/update.php,开始对update模块进行测试. update语法: UPDATE [users] SET [username ...
- php部分(查看文件、建立站点、语法变量、变量的几个方法、“全局局部变量的调用”、static、函数参数的作用域);
浏览器查看php文件: 建立站点,浏览php文件: php的语法 <?php echo "Hello World!"; ?> 注释语法: <?php // 这是 ...
- php遇见的错误(一)
1.linux 执行脚本时报的错 Call to a member function on a non-object in 是没有实例化对象 解决方法 new类2.在给一个表增加一个新字段或者改 ...
- 黑马程序员——JAVA基础之简述 类的封装
------- android培训.java培训.期待与您交流! ---------- 类的封装(Encapsulation) 封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. 封装优 ...
- Java设计模式之适配器设计模式
1.适配器模式( Adapter)定义将一个类的接口转换成客户希望的另外一个接口.Adapter 模式使得原来由于接口不兼容而不能一起工作的 那些类可以一起工作. 现实案例如下: 墙上电源类(22 ...
- jsonp跨域js
http://www.cnblogs.com/yuzhongwusan/archive/2012/12/11/2812849.html window.opener用法 http://www.cnblo ...