点击手机的返回键实现程式的退出,一种是以弹框的方式提示也就是dialog的方法,另一种是以Toast的方式提示
首先讲的是对话框的形式提示用户是否退出程序
按手机的返回键其实就是按下事件keydown事件,在一般的Activity下面只要重写OnKeyDown事件就行了,对于主界面是表格布局的就需要监听dispatchKeyEvent方法了,如下:
界面是Tabhost布局的则实现以下方法
1 //按住back鍵,退出系統 2 @Override 3 public boolean dispatchKeyEvent(KeyEvent event) { 4 if(event.getKeyCode()==KeyEvent.KEYCODE_BACK&&event.getAction()==KeyEvent.ACTION_DOWN&&event.getRepeatCount()==0){ 5 ExitDialog(MainActivity.this).show(); 6 } 7 return super.dispatchKeyEvent(event); 8 }
一般Activity的则实现OnKeyDown事件,就可以监听了
1 @Override 2 public boolean onKeyDown(int keyCode, KeyEvent event) { 3 // TODO Auto-generated method stub 4 return super.onKeyDown(keyCode, event); 5 }
dialog对话框
1 //弹出退出提示框 2 private Dialog ExitDialog(Context context){ 3 AlertDialog.Builder dia=new AlertDialog.Builder(context); 4 dia.setTitle("提示"); 5 dia.setMessage("確定要退出程序嗎?"); 6 dia.setPositiveButton("確定", new DialogInterface.OnClickListener() { 7 @Override 8 public void onClick(DialogInterface dialog, int which) { 9 android.os.Process.killProcess(android.os.Process.myPid());//退出程序 10 } 11 }); 12 dia.setNegativeButton("取消", new DialogInterface.OnClickListener() { 13 @Override 14 public void onClick(DialogInterface dialog, int which) { 15 System.out.println("取消操作"); 16 } 17 }); 18 return dia.create(); 19 }
下面介绍第二种方法,实现程序退出,其实基本原理还是一样的,只不过这种是以时间来判断,当用户按一次返回键,则提示用户再按一次,当用户不继续按的时候过2s就自动取消该事件,
只有按两次的时候,才让程序退出
1 //是否退出 2 private static boolean isexit=false; 3 //定時器 4 private static Timer mytimer=null;
重写onKeyDown事件
1 @Override 2 public boolean onKeyDown(int keyCode, KeyEvent event) { 3 if(keyCode==KeyEvent.KEYCODE_BACK){ 4 if(isexit==false){ 5 isexit=true; 6 if(mytimer!=null){ 7 mytimer.cancel();//移處任務 8 } 9 //重新實例化一個定時器 10 mytimer=new Timer(); 11 TimerTask task=new TimerTask() { 12 13 @Override 14 public void run() { 15 isexit=false; 16 } 17 }; 18 19 Toast.makeText(MainActivity.this, "再按一次退出程序", Toast.LENGTH_SHORT).show();//Toast提示用户是否退出程序 20 //延時2s退出程序 21 mytimer.schedule(task, 2000);//设置时间 22 23 }else{ 24 finish(); 25 System.exit(0);//退出程序 26 } 27 return true; 28 } 29 return super.onKeyDown(keyCode, event); 30 }
以上就是按手机返回键退出程序的两种方法,好吧,就写到这了。。