public void takeOver(Runnable resumeAction) {
        if (resumeAction != null) {
            mResumeAction = resumeAction;
        }
        switch (mStatus) {
            case STATUS_PREPARE:
                mStatus = STATUS_IN_HOOK;
                run();
                break;
            case STATUS_IN_HOOK:
                break;
            case STATUS_RESUMED:
                resume();
                break;
        }
    }
Run a hook runnable, the runnable will run only once.
After the runnable is done, call resume to resume.
Once run, call takeover will directory call the resume action
ptr-lib/src/in/srain/cube/views/ptr/PtrUIHandlerHook.java