android按两次返回退出程序
来源:互联网 发布:js获取复选框的值 编辑:程序博客网 时间:2024/05/16 14:48
今天给大家介绍两种按两次返回退出程序的方式
我先说第一种(我认为比较好理解的):
首先在在全局定义(public void onCreate方法之外)
boolean isExit = false;//设置一个全局变量的退出标识(意思是是否退出,值为false)Handler exitHandler = new Handler(){ @Override public void handleMessage(Message msg) {//处理发送过来的消息 super.handleMessage(msg); isExit = false;//重置值为false(等下后面会改变isExit的值) }};
然后复写onKeyDown方法(也是在public void onCreate方法之外):
//(重点理解两个if)@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {//捕获按键动作发生的方法 if (keyCode == KeyEvent.KEYCODE_BACK){//判断是否按下的试返回键 if (isExit==false){ isExit = true; Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show(); exitHandler.sendEmptyMessageDelayed(0,2000);//延迟2秒发送消息给handleMessage处理//亲们看好了,注意理解,第一次按下的时候就已经将isExit置为true了,到第二次在捕获到按下返回按钮的时候就是true了所以就不执行第二个if了直接reture了就退出了,如果你超过了两秒sxitHandler的延时消息已经发送出去了handleMessage方法又已经将isExit重置为false了所有又到了这段注释开头 }else{ finish(); System.exit(0); } return false; } return super.onKeyDown(keyCode, event);}
下面介绍第二种方法:
//退出时的时间private long mExitTime;//对返回键进行监听@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { exit(); return true; } return super.onKeyDown(keyCode, event);}public void exit() { if ((System.currentTimeMillis() - mExitTime) > 2000) { Toast.makeText(MainActivity.this, "再按一次退出程序", Toast.LENGTH_SHORT).show(); mExitTime = System.currentTimeMillis(); } else { finish(); System.exit(0); }}
阅读全文
1 0
- android 按两次返回键退出程序
- Android 按两次返回键退出程序
- android 按两次返回键 退出程序
- Android按两次返回键退出程序
- android两次按返回键退出程序
- android两次按返回键退出程序
- 【Android】-两次按返回键退出程序:
- android 按两次返回键退出程序
- Android 按两次返回键退出程序
- android按两次返回键退出程序
- Android按两次返回键退出程序
- android按两次返回键退出程序
- android按两次返回键退出程序
- android按两次返回退出程序
- APIcloud 按两次返回键退出程序,android按两次返回键退出程序
- 按两次返回,退出程序
- Android程序按两次返回键退出程序
- android 按两次返回,退出
- 网易构造队列
- [乐意黎原创]VSFTPD进行FTP连接时显示500 OOPS: cannot change directory:/ftp/private错误的解决方法
- 学会在博客中使用gif
- bit mask
- 09_STL包括容器(containers)、迭代器(iterators)、空间配置器(allocator)、配接器(adapters)、算法(algorithms)、仿函数六个部分
- android按两次返回退出程序
- java CAS
- Android Wi-Fi源码分析之WifiService操作Wi-Fi(一):分析Wifi.c中的wifi_load_driver()函数
- CSS3中不熟悉的属性2:display:box和display:flex的区别
- Linux下常用服务的端口号整理
- 关于线程池的理解
- CC2540、nRF51822应用开发比较
- React生命周期
- 二叉树