各种退出应用程序
来源:互联网 发布:巨人网络估值 编辑:程序博客网 时间:2024/06/13 22:00
双击back键退出
很多程序会用到双击back键退出,其实就是按下事件的响应。
实现思路:onKeyDown()会捕获当前点击事件,如果当前keyCode等于BACK事件值就会执行exit()方法。在exit()方法中,首先判断isExit的值,如果为false的话,则置为true,同时会弹出提示,并在3000毫秒(3秒)后发出一个消息,在Handler中接收到消息后将isExit值还原成false。如果在发送消息间隔的3秒内,再次按了BACK键,则再次执行exit方法,此时isExit的值已为true,则会执行退出程序的方法。
- /**
- * 菜单、返回键响应
- */
- @Override
- public boolean onKeyDown(int keyCode, KeyEvent event) {
- // TODO Auto-generated method stub
- if(keyCode == KeyEvent.KEYCODE_BACK)
- {
- 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);
- }
- }
那么长按back键退出呢?
借鉴网友思路:可以重写onKeyDown方法和onKeyUp方法,计算这执行这两个方法之间的时间间隔,如果大于2s,则认为是长按,从而退出程序;否则,则执行back键原有的响应。但是短按back键时会失效。
public boolean dispatchKeyEvent(KeyEvent event) { int keyCode=event.getKeyCode(); //Log.e("start",String.valueOf(start)); switch(keyCode) { case KeyEvent.KEYCODE_BACK: if(event.isLongPress()) //这句很重要,判断事件是否是长按事件 { AlertDialog.Builder builder = new Builder(MainActivity.this); builder.setMessage("确认退出吗?"); builder.setTitle("提示"); builder.setPositiveButton("确认",new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int which) { dialog.dismiss(); MainActivity.this.finish(); System.exit(0); } }); builder.setNegativeButton("取消",new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int which) { dialog.dismiss(); } }); builder.create().show(); return true; } return super.dispatchKeyEvent(event); //如果不是长按,则调用原有方法,执行按下back键应有的处理 default: break; } return super.dispatchKeyEvent(event); }
这样就可以解决了。
0 0
- 各种退出应用程序
- 退出应用程序
- 退出应用程序
- 退出应用程序
- 退出应用程序
- Android退出应用程序,完全退出!
- 双击退出、单击退出应用程序
- android各种退出方式
- 如何退出应用程序
- 应用程序的退出
- 如何退出应用程序
- android 退出应用程序
- 应用程序的退出
- Android完全退出应用程序
- 如何退出Android应用程序
- Android完全退出应用程序
- 退出 android 应用程序
- android 应用程序退出
- CENTOS 6.5 配置YUM安装NGINX
- 关于程序员面试宝典书上一道删除单链表头元素的函数的题小结
- phpcms 动态调用 图片
- 第九节 标准输入输出
- 什么是姿态角(Euler角)pitch yaw roll
- 各种退出应用程序
- hadoop集群的搭建脚本及构思(二):程序文件的管理思路
- unbuntu 12.04新安装qt5.4配置及问题解决。
- 第十节 linux进程操作
- Cordys 主键自动 生成规则 前端 后端
- 可以随性,但别任性
- TCP/IP
- 学习easyui疑问(三)
- 477 A+B Problem III