Android实用方法—返回键的监听
2015-06-15 15:14
411 查看
在Android中,如果没对返回键进行监听的话,就会出现只点击一次返回键就直接退出了程序,这样很不人性化, 只要对返回键进行监听,就可以避免这种情况。对返回键的监听结果有两种操作较为常用,一种是按返回键的时候弹出一个dialog,询问使用者是否退出程序;另一种则是双击返回键的时候退出按钮。由于弹出dialog会给使用者带来较为麻烦的操作,所以这种做法在安卓中已经慢慢被淘汰了。
第一种做法,就是对返回键监听,弹出一个对话框,代码如下:
这样就能实现对返回键进行监听,按返回键的时候弹出一个dialog,dialog里面有个确定跟取消按钮,按相应的按钮,执行退出程序或消除对话框的操作,只要在主的activity中加入这段代码就能实现这个功能 。
第二种做法,对返回键的监听,实现双击返回键退出程序,代码如下:
对返回键进行监听,按下返回键的时候就执行exitBy2Click()这个函数,函数里面用一个定时器来监听两次按下返回键,第一次按下返回键的时候弹出一个Toast,提示“再按一次退出程序”, 然后启动定时器,如果2秒内没再次按下返回键的时候,就取消准备退出这个任务,如果在2秒内再次按下返回键,则执行System.exit(0)即退出程序。
第一种做法,就是对返回键监听,弹出一个对话框,代码如下:
public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK ) { // 创建退出对话框 AlertDialog isExit = new AlertDialog.Builder(this).create(); // 设置对话框标题 isExit.setTitle("温馨提示"); // 设置对话框消息 isExit.setMessage("确定要退出吗?"); // 添加选择按钮并注册监听 isExit.setButton("确定", listener); isExit.setButton2("取消", listener); // 显示对话框 isExit.show(); } return false; } /**监听对话框里面的button点击事件*/ DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { switch (which) { case AlertDialog.BUTTON_POSITIVE:// "确认"按钮退出程序 finish(); break; case AlertDialog.BUTTON_NEGATIVE:// "取消"第二个按钮取消对话框 break; default: break; } } };
这样就能实现对返回键进行监听,按返回键的时候弹出一个dialog,dialog里面有个确定跟取消按钮,按相应的按钮,执行退出程序或消除对话框的操作,只要在主的activity中加入这段代码就能实现这个功能 。
第二种做法,对返回键的监听,实现双击返回键退出程序,代码如下:
public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if(keyCode == KeyEvent.KEYCODE_BACK) { moveTaskToBack(false); exitBy2Click(); //调用双击退出函数 } return false; } /** * 双击退出函数 */ private static Boolean isExit = false; private void exitBy2Click() { Timer tExit = null; if (isExit == false) { isExit = true; // 准备退出 Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show(); tExit = new Timer(); tExit.schedule(new TimerTask() { @Override public void run() { isExit = false; // 取消退出 } }, 2000); // 如果2秒钟内没有按下返回键,则启动定时器取消掉刚才执行的任务 } else { finish(); System.exit(0); } }
对返回键进行监听,按下返回键的时候就执行exitBy2Click()这个函数,函数里面用一个定时器来监听两次按下返回键,第一次按下返回键的时候弹出一个Toast,提示“再按一次退出程序”, 然后启动定时器,如果2秒内没再次按下返回键的时候,就取消准备退出这个任务,如果在2秒内再次按下返回键,则执行System.exit(0)即退出程序。
相关文章推荐
- Android优化系列——性能优化(资源存储)
- Android自定义View的实现方法,带你一步步深入了解View(四)
- Android报错"case expressions must be constant expressions"
- Design Support Library —— TextInputLayout
- android之ScrollView里嵌套ListView(转)
- drawableLeft
- AndroidManifest笔记
- android 中layer-list的用法
- android 开发:shape和selector和layer-list的(详细说明)
- cannot resolve symbol r android studio
- Android搜索框/滚动视图/notification
- Android带清除按钮的文本框
- Android横向滚动屏幕特效分析
- android studio社区
- Android编程之ButterKnife
- VLC for Android : 编译问题 & 解决办法
- Android调用系统截图时候出现黑框
- Android5.1--APK包的安装、卸载和优化(PackageManagerService)(二)
- Android xml布局中的include
- AndroidStudio 关于drawable与selector笔记