zoukankan      html  css  js  c++  java
  • 点击返回键实现退出程序的两种方法

    点击手机的返回键实现程式的退出,一种是以弹框的方式提示也就是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     }

    以上就是按手机返回键退出程序的两种方法,好吧,就写到这了。。

    经验的积累在于平时的点滴、
  • 相关阅读:
    深入理解JVM
    深入理解JVM
    vim
    Java多线程编程核心
    (1)Java多线程编程核心——Java多线程技能
    css3-2
    Iptables教程
    自动化部署脚本
    NEC css规范
    mix-blend-mode 混合模式 background-blend-mode 背景混合模式 isolation:isolate 隔离
  • 原文地址:https://www.cnblogs.com/yrhua/p/3462000.html
Copyright © 2011-2022 走看看