zoukankan      html  css  js  c++  java
  • Activity按下2次退出和获取当前时间

    先看下onBackPressed和onKeyDown的区别

    在Android上有两种方法来获取该按钮的事件

    1.直接获取按钮按下事件,此方法兼容Android 1.0到Android 2.1 也是常规方法,直接重写Activity的onKeyDown方法即可,代码如下:

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event)  {
        if (keyCode == KeyEvent.KEYCODE_BACK) { //按下的如果是BACK,同时没有重复
           Toast.makeText(ml78.this,"返回键Back键测试",1).show();
            return true;
        }

        return super.onKeyDown(keyCode, event);
    }

    而对于Android 2.0开始又多出了一种新的方法,对于Activity 可以单独获取Back键的按下事件,直接重写onBackPressed方法即可,代码如下

    @Override
    public void onBackPressed() {
    // 这里处理逻辑代码,大家注意:该方法仅适用于2.0或更新版的sdk
    return;
    }

    1  现在实现对根Activity按下2此返回键实现退出

    private static boolean isSysExit = false;
        @Override
        public void onBackPressed() {
            // TODO Auto-generated method stub
            if(!isSysExit){
                isSysExit = true;
                
                DensityUtil.showToast(this, "再按一次退出");
                Timer timer = new Timer();
                timer.schedule(new TimerTask() {
                    
                    @Override
                    public void run() {
                        // TODO Auto-generated method stub
                        isSysExit =false;
                    }
                }, 2000);
            }else {
                finish();
            }
        }

    2  在根Activity中重写后退按钮响应事件,当按后退按钮的时候把Activity退置到后台

    @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            // TODO Auto-generated method stub
            //当按下返回键时吧Activity退至到后台
            if(keyCode ==KeyEvent.KEYCODE_BACK){
                moveTaskToBack(true);
                return true;
            }
            
            return super.onKeyDown(keyCode, event);
        }
     @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            if (event.getKeyCode() == KeyEvent.KEYCODE_MENU) {
                if (mDrawerLayout.isDrawerOpen(Gravity.LEFT)) {
                    mDrawerLayout.closeDrawer(Gravity.LEFT);
                } else {
                    mDrawerLayout.openDrawer(Gravity.LEFT);
                }
                return true;
            } else if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
                if (mDrawerLayout.isDrawerOpen(Gravity.LEFT)) {
                    mDrawerLayout.closeDrawer(Gravity.LEFT);
                } else {
                    if ((System.currentTimeMillis() - DOUBLE_CLICK_TIME) > 2000) {
                        showToast(getString(R.string.double_click_exit));
                        DOUBLE_CLICK_TIME = System.currentTimeMillis();
                    } else {
                        getBaseApplication().exitApp();
                    }
                }
                return true;
            }
            return super.onKeyDown(keyCode, event);
        }

    获取时间从http://blog.csdn.net/kookob/article/details/6885383粘贴来的

        package com.ob;  
          
        import java.text.ParseException;  
        import java.text.SimpleDateFormat;  
        import java.util.Calendar;  
        import java.util.Date;  
          
        public class DateTest {  
          
            public static void main(String[] args) throws ParseException {  
                Calendar now = Calendar.getInstance();  
                System.out.println("年: " + now.get(Calendar.YEAR));  
                System.out.println("月: " + (now.get(Calendar.MONTH) + 1) + "");  
                System.out.println("日: " + now.get(Calendar.DAY_OF_MONTH));  
                System.out.println("时: " + now.get(Calendar.HOUR_OF_DAY));  
                System.out.println("分: " + now.get(Calendar.MINUTE));  
                System.out.println("秒: " + now.get(Calendar.SECOND));  
                System.out.println("当前时间毫秒数:" + now.getTimeInMillis());  
                System.out.println(now.getTime());  
          
                Date d = new Date();  
                System.out.println(d);  
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
                String dateNowStr = sdf.format(d);  
                System.out.println("格式化后的日期:" + dateNowStr);  
                  
                String str = "2012-1-13 17:26:33";  //要跟上面sdf定义的格式一样  
                Date today = sdf.parse(str);  
                System.out.println("字符串转成日期:" + today);  
            }  
        }  

    输出结果:

    年: 2012
    月: 1
    日: 13
    时: 17
    分: 28
    秒: 19
    当前时间毫秒数:1326446899902
    Fri Jan 13 17:28:19 CST 2012
    Fri Jan 13 17:28:19 CST 2012
    格式化后的日期:2012-01-13 17:28:19
    字符串转成日期:Fri Jan 13 17:26:33 CST 2012

  • 相关阅读:
    赤手空拳破解WINDOWS系统密码
    几扇鲜为人知的Windows XP自动运行后门
    Enumerating Logon Sessions
    用浏览器控件做界面,网页界面中定义自己的程序事件
    P2P之UDP穿透NAT的原理与实现(附源代码)
    delphi调用c#写的webservice中文出现乱码的问题
    基于Delphi的DirectShow开发概述
    视频捕获软件开发完全教学
    GINA 模块定义文件(Windows XP)
    GINA后门代码
  • 原文地址:https://www.cnblogs.com/wangfengdange/p/5235676.html
Copyright © 2011-2022 走看看