学习封装双击返回键退出

今天在开源中国的源码中看见大神封装的双击返回键感觉不错所以自己也写了一遍收藏了 。
public DoubleClickHelper{
    private Handler mHandler;// 用于提示双击返回键退出
    private Activity mActivity;
    private boolean mIsOnkeyBacking= false;// 用于标记是否是双击返回键退出
    public DoublickClickHelper(Activity mActivity){
        this.mActivity = mActivity;
        mHandler = new Handler(Looper.getMainLooper());
    }

    /**
     *点击事件的处理
     */
     public boolean onKeyDown(KeyEvent event) {

        if (event.getKeyCode() != KeyEvent.KEYCODE_BACK) {
            return false;
        }

        if(mIsOnkeyBacking){ // 第二次点击返回键
            mIsOnkeyBacking = false;
            if(mToast != null){
                mToast.cancel();
                mToast = null;
            }

            mHandler.removeCallbacks(onBackTimeRunnable); //

            //在这里可以添加退出操作

            AppManager.getInstance().appExit();
        }else{ // 第一次点击返回键
            mIsOnkeyBacking = true;
            if (mToast == null) {
                // 这里的文字你可以在你的项目中用R.string.**代替;
                mToast = Toast.makeText(mActivity,"双击返回键退出",Toast.LENGTH_LONG);
            }
            mToast.show();

            mHandler.postDelayed(onBackTimeRunnable,2000); // 在俩秒后执行
        }

        return true;
    }

    /**
     * 用户在俩秒内没有再次点击返回键所以将执行取消操作
     */
    private Runnable onBackTimeRunnable = new Runnable() {
        @Override
        public void run() {
            if (mToast != null) {
                mToast.cancel();
                mToast = null;
            }

            mIsOnkeyBacking = false;
        }
    };
}

使用方法就是在应用主Activity的onKeyDown方法中调用DoubleClickHelper实例的onKeyDown方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值