主要的目的是按后退键的时候,让程序能够退出。

实现起来的思路:

1.捕获后退键被按了这个事件。

Java代码 
  1. @Override
  2. public boolean onKeyDown(int keyCode, KeyEvent event)  {
  3. if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
  4. //按下的如果是BACK,同时没有重复
  5. //DO SOMETHING
  6. }
  7. return super.onKeyDown(keyCode, event);
  8. }

2.在后退键被按的事件里退出程序

这里也有两种方式:直接退出程序,或者退出到主屏幕。

1)退出程序的方法有两种:

Java代码 
  1. android.os.Process.killProcess(android.os.Process.myPid());
Java代码 
  1. System.exit(0);

我试了这两种方法,但是奇怪的是,在1.5模拟器下,程序确实被KILL了,但是马上Android又重新启动了程序。

另外还有一种方式,比较友好,可以释放资源,我觉得可行,就是实现起来麻烦一点,需要逐级退出,重写onResume()方法:

Java代码 
  1. @Override
  2. protected void onResume() {
  3. super.onResume();
  4. if(mExiting){
  5. finish();
  6. }
  7. }

2)退出到主屏幕 
这个比较简单,新建一个主屏幕的Intent就可以。

Java代码 
  1. Intent home = new Intent(Intent.ACTION_MAIN);
  2. home.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
  3. home.addCategory(Intent.CATEGORY_HOME);
  4. startActivity(home);

我最后采用了按后退键回到主屏幕的方式,实现代码如下:

Java代码 
  1. @Override
  2. public boolean onKeyDown(int keyCode, KeyEvent event) {
  3. if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { // 按下的如果是BACK,同时没有重复
  4. Intent home = new Intent(Intent.ACTION_MAIN);
  5. home.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
  6. home.addCategory(Intent.CATEGORY_HOME);
  7. startActivity(home);
  8. }
  9. return super.onKeyDown(keyCode, event);
  10. }
 
 
分类: android

按后退键退出Android程序的更多相关文章

  1. Android 按二次后退键退出应用程序

    前言          欢迎大家我分享和推荐好用的代码段~~ 声明          欢迎转载,但请保留文章原始出处:          CSDN:http://www.csdn.net        ...

  2. web测试误区:浏览器后退键退出系统会话失效

    通过最近测试的项目,认识到实际:浏览器后退键退出系统,会话仍旧有效.打破了之前认为浏览器后退键就会退出系统登录的认知. 一,了解Cookie和Session的作用,具体来说cookie机制采用的是在客 ...

  3. 退出Android程序时清除所有activity的实现方法

    思路: 1. 自定义ActivityList管理类,添加删除维护该list; 2.Activity Stack 类似上面: 3.singleTask定义一个Activity为该启动模式,然后当返回时, ...

  4. Android 应用按两下返回键退出应用程序

    在android应用开发中,有时候应用会用到按两下返回键退出应用的功能,今天介绍一下这个功能,直接上代码: @Override public boolean dispatchKeyEvent(KeyE ...

  5. Android两次后退键退出

    转载请注明出处:http://blog.csdn.net/javacattle/article/details/41964045 仅仅要在 *.Java 文件里加入就可以 private int ba ...

  6. Android中实现两次点击返回键退出本程序

    1,当用户使用我们的app的时候,有时候无意的或者不是有心的按下了我们的返回键,这时候为了更好的用体验,我们需要让用户再一次确定一下,以便判断用户的真实意图 代码如下: //该功能实现退出时提示的功能 ...

  7. 【Android基础】点击Back键退出应用程序

    //第一种方法(弹出对话框) @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-genera ...

  8. phonegap退出android程序

    最近用android做了一个程序,在点“后退”的时候,会不停地后退,感觉不好. 查了些资料有这么些: 一.toast_plugin插件 <script type="text/javas ...

  9. Apicloud 之按两次后退键退出应用

    api.addEventListener({ name: 'keyback' }, function(ret, err) { if (flag == 1) { api.closeWidget({ si ...

随机推荐

  1. Ubuntu 14.04 AM335x TI-RTOS 编译

    /************************************************************************************* * Ubuntu 14.0 ...

  2. spark+hcatalog操作hive表及其数据

    package iie.hadoop.hcatalog.spark; import iie.udps.common.hcatalog.SerHCatInputFormat; import iie.ud ...

  3. Quantum & r2q

    Quantum & r2q Let's assume we have 2 classes with the same parent : Parent : ceil = rate = 100 c ...

  4. 面向过程部分 Java 和 C++ 的区别

    前言 Java 和 C++ 在面向过程部分区别并不大,但还是有的,本文罗列了这些区别. 在 Java 中: 1. 数据类型的范围和机器无关 2. 加上前缀 0b 可以表示二进制数,如 0b1001 就 ...

  5. Android内存管理机制之一:low memory killer

    转载自http://www.miui.com/thread-29268-1-1.html 准备写这个专题之前,心里是有点忐忑的.首先Android内存管理机制相当复杂,想要讲清楚比较困难:其次对于绝大 ...

  6. 从Wordpress迁移到Jekyll

    http://pinkyjie.com/2013/10/24/migrate-from-wordpress-to-jekyll/ 上周末闲着没事干突然想把博客从Wordpress迁移到Github p ...

  7. mysql中模糊查询的四种用法介绍

    下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FROM [user] ...

  8. Educational Codeforces Round 15 C 二分

    C. Cellular Network time limit per test 3 seconds memory limit per test 256 megabytes input standard ...

  9. tyvj 1067 dp 两次LIS(nlogn)

    P1067 合唱队形 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 NOIP2004 提高组 第三道 描述     N位同学站成一排,音乐老师要请其中的(N ...

  10. 根据评分,用js输出评价星星的样式

    <b class="starsboxox" data="1"></b> $('.starsboxox').each(function() ...