• android开发:退出程序(对话框、两次返回键退出)


    贴代码:

    public void exitclick(View view)
        {
            AlertDialog.Builder aa=new AlertDialog.Builder(this); 
            aa.setTitle("消息提示");
            aa.setMessage("确认退出?"); 
            aa.setIcon(R.drawable.icon);
            aa.setPositiveButton("确定",new DialogInterface.OnClickListener() {
                
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // TODO Auto-generated method stub
                    MainActivity.this.finish();
                }
            });
            aa.setNegativeButton("取消", null);
            aa.create(); 
            aa.show(); 
    
            //this.finish();
        }

    感觉比C#的复杂呀。。。

    还有就是按返回键提示退出,继续贴代码:

    private void exitDialog()
        {
            AlertDialog.Builder aa=new AlertDialog.Builder(this); 
            aa.setTitle("消息提示");
            aa.setMessage("确认退出?"); 
            aa.setIcon(R.drawable.icon);
            aa.setPositiveButton("确定",new DialogInterface.OnClickListener() {
                
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // TODO Auto-generated method stub
                    MainActivity.this.finish();
                }
            });
            aa.setNegativeButton("取消", null);
            aa.create(); 
            aa.show(); 
        }
        
        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event)
        {
            if(keyCode == KeyEvent.KEYCODE_BACK)
            {
            exitDialog();
            }
            return true;
            
        }

    现在还流行连续按两次返回退出,代码:

        private static boolean isExit=false;
        private static boolean hasTask=false;
        Timer tExit=new Timer();
        TimerTask task=new TimerTask() {
            
            @Override
            public void run() {
                // TODO Auto-generated method stub
                isExit=false;
                hasTask=true;
            }
        };
    
    
    @Override
        public boolean onKeyDown(int keyCode, KeyEvent event)
        {
            if(keyCode == KeyEvent.KEYCODE_BACK)
            {
                //exitDialog();
                if(isExit==false)
                {
                    isExit=true;
                    Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show(); 
                    if(!hasTask) {
                        tExit.schedule(task, 2000);
                    }
                }
                else
                {
                    finish();
                    System.exit(0);
                }
                
            }
            //return true;
            return false;
            
        }
  • 相关阅读:
    64位操作系统Visual Studio连接本机oracle的问题
    解决Oracle启动失败
    通过应用程序域AppDomain加载和卸载程序集
    C#应用程序实现单例模式
    不实现 INotifyPropertyChanged接口也能实现数据绑定
    WPF弹出“选择文件夹”对话框
    Linux常用命令
    markedown基本语法
    git使用
    用户打开浏览器,输入buidu.com页面展示百度首页。整个过程发生了什么?
  • 原文地址:https://www.cnblogs.com/wuchao/p/2971394.html
Copyright © 2020-2023  润新知