按键处理

     

按键处理

-----------------------------------------

按键通常指的是设备上的“物理”按键,(Android事件处理(event)分:按键处理和手势处理)。

在Activity中,重写onKeyDown()、onKeyUp()、onKeyLongPress()可以实现对按键的处理,这些方法的返回值都是boolean类型的,表示“是否消费事件”,在重写这些方法时,如果返回true,则“直接消费完成”,不会存在后续操作,如果返回false,则“未完全消费”,系统仍然会按照默认的按钮处理方式对事件进行处理。


 Activity:

             public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    
    private long lastClickBackTimeMillis;
    
    @Override
    public boolean onKeyDown(
            int keyCode, // 键的编码
            KeyEvent event // 按键的事件
        ) {
        // 判断按下的是不是返回键
        if(keyCode == KeyEvent.KEYCODE_BACK) {//常量在event里面找
            // 判断是否是连续按下
            long currentClickBackTimeMillis = System.currentTimeMillis();
            if(currentClickBackTimeMillis - lastClickBackTimeMillis > 1000) {
                Toast.makeText(this, "再按1次退出应用程序", Toast.LENGTH_LONG).show();
                lastClickBackTimeMillis = currentClickBackTimeMillis;
                return true;//消费时间完成,如果条件成立,就不执行后面的activity
            }
        }
        return super.onKeyDown(keyCode, event);//退掉activity,这是系统默认的。
    }


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值