Android 应用按返回键退向后台运行

Android应用开发按下返回键退向后台运行

我们日常使用的很多Android应用(如QQ、微信、微博),在应用的主界面按下返回键,应用并没有退出,而是进入后台运行。

那么,开发中是如何实现的呢?我找到了两种方法:


一、监测返回键

1、在Activity中重写onBackPressed()方法。

@Override
public void onBackPressed() {
    //此处写退向后台的处理
}
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

2、重写onKeyDown()方法(有的应用提示再次点击返回键退出应用就是在这里做的文章)。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {//如果返回键按下
        //此处写退向后台的处理
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

二、退向后台运行

1、只需一句话搞定,调用moveTaskToBack()方法,这个方法需要设置一个boolean参数,ture 在任何Activity中按下返回键都退出并进入后台运行, false 只有在根Activity中按下返回键才会退向后台运行。

moveTaskToBack(false);  
  • 1
  • 1

2、使用Intent,返回手机主界面。

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addCategory(Intent.CATEGORY_HOME);
startActivity(intent); 
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

最后来个详细点儿的

@Override
public void onBackPressed() {
    //方式一:将此任务转向后台
    moveTaskToBack(false);

    //方式二:返回手机的主屏幕
    /*Intent intent = new Intent(Intent.ACTION_MAIN);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    intent.addCategory(Intent.CATEGORY_HOME);
    startActivity(intent);*/
} 
时间: 2024-11-03 21:42:31

Android 应用按返回键退向后台运行的相关文章

android 应用按返回键仍然在后台运行

@Override    public boolean onKeyDown(int keyCode, KeyEvent event) {        // TODO Auto-generated method stub if (keyCode == KeyEvent.KEYCODE_BACK) {            Log.e("", "onKeyDown,按下返回键啦");            moveTaskToBack(false);         

Android点击返回键back时弹出对话框Dialog

public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { ExitDialog(MainActivity.this).show(); return true; } return super.onKeyDown(keyCode, event); } private Dialog ExitDialog

android 监听返回键

android监听返回键 public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { return true; } return super.onKeyDown(keyCode, event); } event.getRepeatCount() == 0重复次数:1次

Android监听返回键、Home键+再按一次返回键退出应用

Android监听返回键需重写onKeyDown()方法 Home键keyCode==KeyEvent.KEYCODE_HOME [java] view plain copy @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { //++自定义点击事件 return tru

android中的返回键与Activity

我在做应用时遇到一个问题,就是在启动主页面时需要预先加载一些数据,我是在一个加载页中处理完这些数据然后再转到主页面,但当我在主页面中按返回键时,系统会返回加载页面.我不希望加载页在使用完之后还被保留在任务中. Android的官方文档中这样描述的返回栈.任务和activity的默认关系: 1:当从Activity A中启动Activity B时,Activity A停止,但是保存了它的状态(比如,滚动位置和表单中的文字).如果当用户在Activity B中按了返回键,Activity A会恢复之

Android监听返回键

android开发中,对返回键事件的监听是要经常用到的,下面以一个例子来演示一下android对返回键的事件监听. public class BackKeyTest extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); se

[转]Android应用中返回键的监听及处理

用户在点击手机的返回按钮时,默认是推出当前的activty,但是有时用户不小心按到返回,所以需要给用户一个提示,这就需要重写onkeydown事件,实现的效果如下: 标签:    Android SDK 代码片段(2) [全屏查看所有代码] 1. [图片] 截图 2. [代码][Java]代码     跳至                         [2]     [全屏预览] ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

从网页监听Android设备的返回键

最近搞Android项目的时候,遇到一个比较蛋疼的需求,需要从Client App调用系统浏览器打开一个页面,进行杂七杂八的一些交互之后,返回到App.如何打开浏览器和如何返回App这里就不说了,有兴趣的童鞋可私下交流. 之所以说这个需求蛋疼,是因为Android有个物理返回键啊……返回键啊……键啊……啊…… 用户按下返回键后,预期应该跟点击页面上的返回键一样——返回App.然而这个返回键的被按下的时候网页完全不知道啊(onbeforeunload不算),找不到直接的办法去监听,愁死我们这全苦逼

Android 监听返回键退出程序的两种实现

1.Android 双击返回键退出程序 思路:用户按下返回键时设定一个定时器来监控是否2秒内实现了退出,如果用户没有接着按返回键,则清除第一次按返回键的效果,使程序还原到第一次按下返回键之前的状态.定时器是每次用户按下返回键才去创建. 代码如下: /** * 菜单.返回键响应 */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if(keyC