zoukankan      html  css  js  c++  java
  • 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;
            
        }
  • 相关阅读:
    GlusterFS分布式文件系统部署
    bower解决js的依赖管理
    Linux如何查看当前占用CPU或内存最多的几个进程
    WIN7无法卸载掉中文繁体注音输入法
    kafka消费者报错INVALID_FETCH_SESSION_EPOCH
    Hbase报错:org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet
    Prometheus一条告警是怎么触发的
    prometheus client_golang使用
    prometheus告警插件-alertmanager
    sed替换变量
  • 原文地址:https://www.cnblogs.com/wuchao/p/2971394.html
Copyright © 2011-2022 走看看