android实现按两次返回键退出程序

来源:互联网 发布:瓷砖铺贴软件 编辑:程序博客网 时间:2024/06/14 17:38

只要添加如下代码即可实现:



 

    private long mExitTime;    public boolean onKeyDown(int keyCode, KeyEvent event)    {        if (keyCode == KeyEvent.KEYCODE_BACK)        {            if ((System.currentTimeMillis() - mExitTime) > 2000)            {                Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();                mExitTime = System.currentTimeMillis();            }            else            {                System.exit(0);            }            return true;        }        return super.onKeyDown(keyCode, event);    }



但在继承了TabActivity的Activity中貌似用以上方法不可实现,可以改为以下代码即可(方法很臃肿,高手勿喷):

private long mExitTime;private static int keyCodeBackCount;public boolean dispatchKeyEvent(KeyEvent event)    {        ++keyCodeBackCount;        if (event.getKeyCode() == KeyEvent.KEYCODE_BACK                && event.getRepeatCount() == 0)        {            if ((System.currentTimeMillis() - mExitTime) > 2000                    || keyCodeBackCount % 2 == 0)            {                if (keyCodeBackCount % 2 == 1)                    Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();                mExitTime = System.currentTimeMillis();            }            else if (keyCodeBackCount >= 3)            {                keyCodeBackCount = 0;                System.exit(0);            }            return true;        }        return super.dispatchKeyEvent(event);    }



原创粉丝点击