您的位置:首页 > 移动开发 > Android开发

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

2013-06-03 16:10 411 查看
只要添加如下代码即可实现:

 

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);
    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: