android中的后退键退出activity几种方式(以点击两次退出activity为例)

本文介绍了两种在Android中实现回退键监听的方法:一种是通过重写onKeyDown方法来处理回退键事件,另一种是从Android 2.0开始提供的onBackPressed方法。这两种方法均可实现点击两次回退键退出应用程序的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先这篇文章是我发布的第一篇文章,文采或者知识面涵盖不是很好,很广,望各位海涵,

有不足之处也希望大家指出,笔者在这儿谢过了,话不多说,进入我们的主题:


第一种通过调用onkeyDown方法,此方法兼容Android 1.0到Android 2.1 也是常规方法。


之前我们估计用的比较多的回退键监听都是调用onKeyDown方法,通过判断keyCode值对应是否为回退键
举个栗子吧(就拿我们经常用到的点击两次回退键退出activity为例):

//该方法可设置两次返回退出,并在此弹出对话框或者吐司一个消息给用户
//定义一个long型值用于记录第一次点击的时间
private Long firstBackTime=(long)0;
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {//表示点击返回键
            //System.currentTimeMillis()获取当前时间
            if (System.currentTimeMillis() - firstBackTime > 2000) {
                Toast.makeText(MainActivity.this, "再次点击退出程序", Toast.LENGTH_SHORT).show();
                firstBackTime = System.currentTimeMillis();
                //表示如果两次点击间隔时间超过两秒则退出无效
                return false;
            } else {
                finish();
                System.exit(keyCode);
            }
        }
        return super.onKeyDown(keyCode, event);
    }


第二种就是对于Android 2.0开始又多出了一种新的方法,对于Activity 可以单独获取Back键的按下事件,直接重写onBackPressed方法
具体按下回退键两次退出当前程序具体例子如下:
//定义一个long型值用于记录第一次点击的时间
private Long firstBackTime=(long)0;
    @Override
    public void onBackPressed() {
        if(System.currentTimeMillis()-firstBackTime>2000){
            Toast.makeText(this, "再按一次退出", Toast.LENGTH_SHORT).show();
            firstBackTime=System.currentTimeMillis();
        }else{
            super.onBackPressed();
           //停止进程

            //其中System.exit(0)代表进程正常退出  System.exit(1)代表程序异常退出
            System.exit(0);
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值