android 实现按两次back键提示退出应用界面

通过连续按两次back键,弹出Toast提示再按一次退出功能。关键代码如下:

第一种方式:

 /**
     * 连续按两次返回键就退出
     */
    private int keyBackClickCount = 0;

    @Override
    protected void onResume() {
        super.onResume();
        keyBackClickCount = 0;
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub

        if (keyCode == KeyEvent.KEYCODE_BACK) {
            switch (keyBackClickCount++) {
                case 0:
                    Toast.makeText(this,
                            getResources().getString(R.string.press_again_exit),
                            Toast.LENGTH_SHORT).show();
                    Timer timer = new Timer();
                    timer.schedule(new TimerTask() {
                        @Override
                        public void run() {
                            keyBackClickCount = 0;
                        }
                    }, 3000);
                    break;
                case 1:
                    mFrameTv.setVisibility(View.VISIBLE);
                    mImgTv.setVisibility(View.VISIBLE);
                    Animation anim = AnimationUtils.loadAnimation(
                            MainActivity.this, R.anim.tv_off);
                    anim.setAnimationListener(new tvOffAnimListener());
                    mImgTv.startAnimation(anim);
                    break;
                default:
                    break;
            }
          <span style="color:#ff0000;">  return true;</span>
        } else if (keyCode == KeyEvent.KEYCODE_MENU) {

            if (sm.isMenuShowing()) {
                toggle();
            } else {
                showMenu();
            }
        }
        return super.onKeyDown(keyCode, event);
    }

第二种方式:

/**
	 * 连续按两次返回键就退出
	 */
	private boolean isWaitingExit = false;

	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		// TODO Auto-generated method stub

		if (keyCode == KeyEvent.KEYCODE_BACK) {

			if (isWaitingExit) {
				isWaitingExit = false;
				mFrameTv.setVisibility(0);
				mImgTv.setVisibility(0);
				Animation anim = AnimationUtils.loadAnimation(
						MainActivity.this, R.anim.tv_off);
				anim.setAnimationListener(new tvOffAnimListener());
				mImgTv.startAnimation(anim);

			} else {
				Toast.makeText(this,
						getResources().getString(R.string.press_again_exit),
						Toast.LENGTH_SHORT).show();
				isWaitingExit = true;
				Timer timer = new Timer();
				timer.schedule(new TimerTask() {
					@Override
					public void run() {
						isWaitingExit = false;
					}
				}, 3000);
				return true;
			}
			return true;
		} else if (keyCode == KeyEvent.KEYCODE_MENU) {

			if (sm.isMenuShowing()) {
				toggle();
			} else {
				showMenu();
			}
		}
		return super.onKeyDown(keyCode, event);
	}
时间: 2024-10-30 08:28:30

android 实现按两次back键提示退出应用界面的相关文章

Android程序按两次返回键提示退出信息

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_SHOR

Android连续点击两次返回键退出应用,提示“再按一次退出应用&quot;

// 定义一个long型变量,用于判断两次点击的间隔 private long exitTime: // 实现返回键的点击事件 public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { exit(); // 在这里进行点击判断 return false; } return super.onKeyDown(keyCode, event); } public void

android实现点击两次返回键实现退出功能

在使用android平台的app是我们经常会发现点击两次返回键会提示是否退出的功能,下面讲讲此功能是如何实现的(此方法比较简单) 第一种方法是对系统返回键进行监听,定义一个变量记录按键时间,通过计算时间差来实现该功能,代码如下: //退出时的时间private long mExitTime;//对返回键进行监听@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCO

Android连续点击两次Back键退出程序

思路1:记录上次点击的时间,与本次点击的时间比较,当两次时间间隔小于一定值时,退出,否则提示"再按一次退出程序",同时更新上次点击时间       private long firstTime = 0;      @Override   public boolean onKeyUp(int keyCode, KeyEvent event) {          // TODO Auto-generated method stub          switch(keyCode)    

android程序 点击两次返回键程序退出

@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK) { exitBy2Click(); } return false; } /** * 双击退出函数 */ private static Boolean isExit = false; private void exitBy2Click() { Timer tExit = null; if (is

Android实现按两次back键退出应用

重写onKeyDown()方法 System.currentTimeMillis():该方法的作用是返回当前的计算机时间,时间的表达格式为当前计算机时间和GMT时间(格林威治时间)1970年1月1号0时0分0秒所差的毫秒数 private long exitTime = 0; @Override      public boolean onKeyDown(int keyCode, KeyEvent event) {          if (keyCode == KeyEvent.KEYCODE

android连续点击两次返回键退出代码

private long exitTime = 0; @Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){ if((System.currentTimeMillis()-exitTime) > 2000){ Toast.makeText(getA

Android实现点击两次返回键退出

在做android应用是我们经常要判断用户对返回键的操作,一般为了防止误操作都是在用户连续按下两次返回键的时候提示用户是否退出应用程序. 原理: 监听back键的按下,需要重写onKeyDown()方法,判断两次按下的时差,如果小于2秒,就退出,反之亦然. 第一种: package com.example.appexitdemo; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import a

Android按两次提示退出应用

转载请标明:http://blog.csdn.net/u012637501 Android按两次提示退出应用,核心思想是:在主Activity中重写onKeyDown方法,其是一个回调方法,即当用户按下键盘某个按钮时,我们可以根据键盘码判断按下的是哪个按键.然后,判断计算两次按下返回键的时间间隔(如3s),实现两次按下返回键是否退出应用. 具体实现代码如下: /*---onKeyDown方法:按两次返回键退出--*/ public boolean onKeyDown(int keyCode, K