$Android连续按返回键两次实现退出程序

  思路:重写Activity的onKeyDown方法,判断按键是不是返回键,如果是,则再判断按下的时间和上次按下的时间之间的差值(毫秒数)是不是大于2000,如果不大于,则用finish()方法结束程序。Demo如下:

 1 import android.app.Activity;
 2 import android.os.Bundle;
 3 import android.view.KeyEvent;
 4 import android.widget.Toast;
 5  
 6 public class TestActivity extends Activity {
 7         private long mExitTime;  //存在时间,初值为0,用于和当前时间(毫秒数)做差值
 8      
 9     @Override
10         public void onCreate(Bundle savedInstanceState) {
11                 super.onCreate(savedInstanceState);
12                 setContentView(R.layout.main);
13  
14         }
15     
16     @Override     
17         public boolean onKeyDown(int keyCode, KeyEvent event) {
18                 if (keyCode == KeyEvent.KEYCODE_BACK) {
19                         if ((System.currentTimeMillis() - mExitTime) > 2000) {  //mExitTime的初始值为0,currentTimeMillis()肯定大于2000(毫秒),所以第一次按返回键的时候一定会进入此判断
20 21                                 Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
22                                 mExitTime = System.currentTimeMillis();
23  
24                         } else {
25                                 finish();
26                         }
27                         return true;
28                 }
29                 return super.onKeyDown(keyCode, event);
30         }
31 }

 

转载于:https://www.cnblogs.com/jiayongji/p/5374088.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/418691.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用layer.tips实现鼠标悬浮时触发事件提示消息实现

https://www.cnblogs.com/Big-Boss/p/9531235.html /*** 服务商管理初始化*/ var invoice {id: "invoiceTable", //表格idseItem: null, //选中的条目table: null,layerIndex: -1 }; /*** 初始化表格的列*/ invoice.initColumn function () {return [{field: get…

前端学习(1864)vue之电商管理系统电商系统之绘制登录表单区域带icon的输入框

修改头像位置 3目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vueVue.use(Router)export default new Router({routes:[{path:/,redirect:/login},{path:/login,component:Login}] }) login.vue <templat…

mysql(2)—— 由笛卡尔积现象分析数据库表的连接

https://www.cnblogs.com/cdf-opensource-007/p/6507678.html

前端学习(1865)vue之电商管理系统电商系统之实现表单的数据绑定

修改头像位置 3目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vueVue.use(Router)export default new Router({routes:[{path:/,redirect:/login},{path:/login,component:Login}] }) login.vue <templat…

Solr数据不同步

Solr配置了集群&#xff0c;本地有253和254&#xff0c;2个独立的Solr服务。同一个页面的图片&#xff0c;刷新2次&#xff0c;图片地址不一样&#xff0c;最后查明&#xff0c;后台数据源Solr1和Solr2的数据不一致。第1步推测&#xff1a;本地缓存&#xff0c;删除浏览器缓存&…

Java中BigDecimal的8种舍入模式

http://www.blogjava.net/wangzc2001/archive/2010/12/17/340988.html

前端学习(1866)vue之电商管理系统电商系统之登录退出实现表单的数据验证

修改头像位置 3目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vueVue.use(Router)export default new Router({routes:[{path:/,redirect:/login},{path:/login,component:Login}] }) login.vue <templat…

HDU 1402 A * B Problem Plus FFT

A * B Problem Plus题目连接&#xff1a; http://acm.hdu.edu.cn/showproblem.php?pid1402 Description Calculate A * B. Input Each line will contain two integers A and B. Process to end of file. Note: the length of each integer will not exceed 50000. Output For…

前端学习(1867)vue之电商管理系统电商系统之登录退出实现表单的重置

修改头像位置 3目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vueVue.use(Router)export default new Router({routes:[{path:/,redirect:/login},{path:/login,component:Login}] }) login.vue <templat…

五种js判断是否为整数类型方式

https://www.cnblogs.com/yueguanguanyun/p/7255962.html

【原】搬家了,请移步

鉴于博客园缺乏教学管理能力&#xff0c;故移步到 www.t2code.com 博客主页&#xff1a;http://www.t2code.com/blog/index.shtml 我的博客&#xff1a; http://www.t2code.com/blog/home.shtml?createUserId3转载于:https://www.cnblogs.com/jerry1979/p/5379859.html

前端学习(1868)vue之电商管理系统电商系统之登录退出实现表单的预先认证

修改头像位置 3目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vueVue.use(Router)export default new Router({routes:[{path:/,redirect:/login},{path:/login,component:Login}] }) login.vue <templat…

Android为TV端助力 post带数据请求方式,传递的数据格式包括json和map

如下&#xff1a; public static String httpPost(String url, String json) { try { URL u new URL(url); HttpURLConnection httpURLConnection (HttpURLConnection) u.openConnection(); httpURLConnection.setConnectTimeout(TIMEOUT); httpURLConnection.setDoInput(tru…

前端学习(1869)vue之电商管理系统电商系统之配置axios发出登录请求

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vueVue.use(Router)export default new Router({routes:[{path:/,redirect:/login},{path:/login,component:Login}] }) login.vue <template><div c…

linux nginx安装

https://blog.csdn.net/qq_42815754/article/details/82980326

前端学习(1870)vue之电商管理系统电商系统之配置message全局弹框组件

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vueVue.use(Router)export default new Router({routes:[{path:/,redirect:/login},{path:/login,component:Login}] }) login.vue <template><div c…

使用贝赛尔路径(UIBezierPath)创建画板

在iOS开发中&#xff0c;创建图形&#xff0c;经常会使用贝塞尔路径&#xff0c;用于描绘一些比较复杂的图形。 使用贝塞尔路径&#xff0c;需要在view中的方法- (void)drawRect:(CGRect)rect中进行描绘。 1 - (void)drawRect:(CGRect)rect{2 UIBezierPath *path [UIBezie…

Java 8 中 Map 骚操作之 merge() 的用法

https://juejin.im/post/5d9b455ae51d45782b0c1bfb

前端学习(1871)vue之电商管理系统电商系统之路由导航守卫控制页面访问权限

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue Vue.use(Router)export default new Router({routes:[{path:/,redirect:/login},{path:/login,component:Login},{…