Quantcast
Channel: CSDN博客移动开发推荐文章
Viewing all articles
Browse latest Browse all 5930

Android--onKeyDown方法

$
0
0

在Android开发过程中,经常要对部分手机按键进行自定义的处理,我们可以通过重写Activity的方法onKeyDown()来实现,我们根据对不同的键的处理可以增强用户体验。

private long mExitTime;//保存上次点击back键的系统时间

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        if ((System.currentTimeMillis() - mExitTime) > 2000) {
            //时间相隔大于2s吐司提醒
            Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
            mExitTime = System.currentTimeMillis();
        } else {
            //退出应用
            finish();
        }
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

这样是不是就和我们使用过的很多APP一样了。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode == KeyEvent.KEYCODE_BACK) {
        // 监控返回键
        new AlertDialog.Builder(KeyActivity.this).setTitle("提示")
        .setIconAttribute(android.R.attr.alertDialogIcon)
        .setMessage("确定要退出吗?")
        .setPositiveButton("确认", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                KeyActivity.this.finish();
            }
        })
        .setNegativeButton("取消", null)
        .create().show();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

一般的APP按下Back键显示的都是这两种效果,Dialog的布局主要是为了显示,大家也可以去自己设计漂亮符合APP风格的界面。

结束语:本文仅用来学习记录,参考查阅。

作者:HardWorkingAnt 发表于2017/6/10 23:42:11 原文链接
阅读:305 评论:0 查看评论

Viewing all articles
Browse latest Browse all 5930

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>