Android笔记--两种双击退出程序的方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android笔记--两种双击退出程序的方法相关的知识,希望对你有一定的参考价值。
首先通过onKeyDown获取当前是否是BACK键。如果是进行下一步。
两种方法其中一种是通过对连续点击back键之间的时间进行判断是否是要退出,另一种是设置一个状态值,通过改变状态值来判断是否是要退出。
1.
1 private long exitTime=0;//根据连续点击之间时间判断 是否退出 2 3 @Override 4 protected void onCreate(Bundle savedInstanceState) { 5 super.onCreate(savedInstanceState); 6 setContentView(R.layout.activity_main); 7 8 } 9 10 @Override 11 public boolean onKeyDown(int keyCode, KeyEvent event) { 12 13 if (keyCode==KeyEvent.KEYCODE_BACK){ 14 exit(); 15 return false; 16 } 17 return super.onKeyDown(keyCode, event); 18 } 19 /* 20 根据点击时间判断 21 */ 22 23 private void exit(){ 24 if (System.currentTimeMillis()-exitTime>2000){ 25 Toast.makeText(getApplicationContext(),"再点击一次退出",Toast.LENGTH_SHORT).show(); 26 exitTime=System.currentTimeMillis(); 27 }else { 28 finish(); 29 System.exit(0); 30 } 31 }
2.通过handler延迟发送一条信息来改变状态值。
private static boolean isExit=false;//根据标识判断 是否退出 Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); isExit=false; } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode==KeyEvent.KEYCODE_BACK){ exit(); return false; } return super.onKeyDown(keyCode, event); } /* * 1.定义一个标识是否突出 * */ private void exit(){ if (isExit){ isExit=true; Toast.makeText(getApplicationContext(),"再点击一次退出",Toast.LENGTH_SHORT).show(); //利用handler延迟发送退出状态 handler.sendEmptyMessageDelayed(0,2000); }else { finish(); System.exit(0); } }
以上是关于Android笔记--两种双击退出程序的方法的主要内容,如果未能解决你的问题,请参考以下文章