通过监听onKeyUp或者onKeyDown,如果是KeyEvent.KEYCODE_BACK并且没有滑动操作正常关闭acitivity,否则拦截事件
 private var isSlideMove = false
    override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
        if (keyCode == KeyEvent.KEYCODE_BACK && isSlideMove) {
            isSlideMove = false
            return true
        }
        return super.onKeyUp(keyCode, event)
    }

    override fun dispatchTouchEvent(ev: MotionEvent): Boolean {
        if (ev.action == MotionEvent.ACTION_MOVE) {
            isSlideMove = true
        }
        return super.dispatchTouchEvent(ev)
    }

更多推荐