在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 查看评论