Android实现点击两次返回键退出
来源:互联网 发布:部落冲突巨石投手数据 编辑:程序博客网 时间:2024/06/01 07:38
Android应用程序通常要通过判断用户对于返回键的操作,一般是为了防止误触误操作而导致用户体验不佳。因此,需要在用户按下返回键的时候提示用户是否退出应用程序。
2、当按下BACK键时,会被onKeyDown捕获,判断是BACK键,则执行exit方法。在exit方法中,通过记录按键时间计算时间差实现。
常见的提示方法有两种,一种是通过Toast的方式弹出提示,一种是通过对话框Dialog的方式弹出提示。
一、Toast方式弹出提示
1、当按下BACK键时,会被onKeyDown捕获,判断是BACK键,则执行exit方法。在exit方法中,首先判断isExit的值,如果为false,则重置为true,同时弹出提示,并在2秒后发出一个消息,在Handler中将此值还原成false。如果在发送消息间隔的2秒内,再次点击BACK键,则再次执行exit方法,此时isExit的值已经为true,则会直接执行退出的方法。
public class MainActivity extends Activity{ //定义一个变量,来标识是否退出 private static boolean isExit=false; Handler handler=new Handler(){ @Override public void handleMessage(Message msg){ super.handleMessage(msg); isExit=false; } }; @Override public boolean onKeyDown(int keyCode,KeyEvent event){ if(keyCode==KeyEvent.KEYCODE_BACK){ exit(); return false; } return super.onKeyDown(keyCode,event); } private void exit(){ if(!isExit){ isExit=true; Toast.makeText(getApplicationContext(),"再按一 退出程序",Toast.LENGTH_SHORT).show(); //利用handler延迟发送更改状态信息 handler.sendEmptyMessageDelayed(0,2000); } else{ finish(); System.exit(0); } }
2、当按下BACK键时,会被onKeyDown捕获,判断是BACK键,则执行exit方法。在exit方法中,通过记录按键时间计算时间差实现。
public class MainActivity extends Activity{ private long exitTime=0; @Override public boolean onKeyDown(int keyCode,KeyEvent event){ if(keyCode==KeyEvent.KEYCODE_BACK){ exit(); return false; } return super.onKeyDown(keyCode,event); } private void exit(){ if((System.currentTimeMills()-exitTime)>2000){ Toast.makeText(getApplicationContext(), "再按一次退出程序",Toast.LENGTH_SHORT).show(); exitTime=System.currentTimeMills(); else{ finish(); System.exit(0); } }
阅读全文
0 0
- Android实现点击两次返回键退出
- Android实现点击两次返回键退出
- Android实现点击两次返回键退出
- Android实现点击两次返回键退出
- Android实现点击两次返回键退出
- Android实现点击两次返回键退出
- Android实现点击两次返回键退出
- Android实现点击两次返回键退出
- Android实现点击两次返回键退出
- Android实现点击两次返回键退出
- Android实现点击两次返回键退出
- Android实现点击两次返回键退出
- Android实现点击两次返回键退出
- Android实现点击两次返回键退出
- Android实现点击两次返回键退出
- Android实现点击两次返回键退出
- Android实现点击两次返回键退出
- Android实现点击两次返回键退出
- 靠谱的seo标题写作技巧
- 关于人脸检测与识别的API、库和软件
- 关于Python绑定方法和非绑定方法的思考
- 操作系统—概论
- Sframe与Graphlab Create的安装
- Android实现点击两次返回键退出
- SparkMLLib中基于DataFrame的TF-IDF
- rpmbuild打包遇到问题汇总
- 1065. 单身狗(25)--Python
- 同步锁与操作系统中断
- 超强、超详细Redis数据库入门教程
- java Object类
- 寻找字符串最长不重复的子串
- Google浏览器安装&使用