首页 > 系统 > Android > 正文

onBackPressed方法实现android返回键点击两次退出app

2019-11-06 09:42:32
字体:
来源:转载
供稿:网友
基本原理:重写android的返回键点击事件监听方法,第一次按下时弹出Toast提醒用户再按一次退出,然后判断第                  二次按下的时间与第一次相差时间是否小于2秒,小于则推出程序否则继续弹出提示。实现方法:可以通过onKeyDown+finish 或者 system.exit(),还可以通过重写onBackPRessed方法来实现。1.首先查看onBackPressed()方法
	@Override	public void onBackPressed() {		super.onBackPressed();	}查看super.onBackPressed()源码
    public void onBackPressed() {        if (mActionBar != null && mActionBar.collapseActionView()) {            return;        }        if (!mFragments.getFragmentManager().popBackStackImmediate()) {            finishAfterTransition();        }    }查看finishAfterTransition()源码
    public void finishAfterTransition() {        if (!mActivityTransitionState.startExitBackTransition(this)) {            finish();        }    }finishAfterTransition()方法中调用了finish()方法,可以看出super.onBackPressed() 可以实现关闭当前activity();如果重写onBackPressed()方法时,删掉super.onBackPressed();则app无法通过返回键退出程序。
	@Override	public void onBackPressed() {		//super.onBackPressed();去掉后无法通过返回键退出 app	}2.实现点击两次退出程序
	//第一次点击返回键的时间	private long firstPressedTime;	@Override	public void onBackPressed() {		//System.currentTimeMillis() 当前系统时间即第二次点击返回键的时间		if (System.currentTimeMillis() - firstPressedTime < 2000) {			super.onBackPressed();		} else {			Toast.makeText(getBaseContext(), "再点一次退出", Toast.LENGTH_SHORT).show();			firstPressedTime = System.currentTimeMillis();		}	}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表