2 qq 32360535 qq_32360535 于 2016.01.27 15:03 提问

关于android中的回调机制 求大神帮忙看看代码

boss 叫我写一个sdk 然后里面得实现回调 还给了我个demo 说回调机制和这个demo 一样 大概就是从A客户端发出一个数据 然后我这边接受 接受和执行一个事件 然后再回调给C
public class DemoActivity extends Activity {
private InputInterceptor input;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    input = new InputInterceptor(this, mListener);       
}

@Override
protected void onResume() {
    super.onResume();
    input.resume();
}

@Override
protected void onPause() {
    super.onPause();
    input.pause();
}

@Override
protected void onDestroy() {
    super.onDestroy();
    input.finish();
}

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
    if (input.dispatchKeyEvent(event))
        return true;
    return super.dispatchKeyEvent(event);
}

@Override
public boolean dispatchGenericMotionEvent(MotionEvent ev) {
    if (input.dispatchGenericMotionEvent(ev))
        return true;
    return super.dispatchGenericMotionEvent(ev);
}

private IInputEventListener mListener = new IInputEventListener() {

    @Override
    public boolean onSDKKeyEvent(KeyEvent event) {
        int keycode = event.getKeyCode();
        int action = event.getAction();
        switch (keycode) {
        case KeyEvent.KEYCODE_BUTTON_A:
            // TODO
            break;
        case KeyEvent.KEYCODE_BUTTON_B:
            // TODO
            break;
        case KeyEvent.KEYCODE_DPAD_UP:
            // TODO
            break;
        }
        return true;
    }

    @Override
    public boolean onSDKGenericMotionEvent(MotionEvent ev) {
        // joystick 1
        float x = ev.getAxisValue(MotionEvent.AXIS_X);
        float y = ev.getAxisValue(MotionEvent.AXIS_Y);

        // joystick 2
        float z = ev.getAxisValue(MotionEvent.AXIS_Z);
        float rz = ev.getAxisValue(MotionEvent.AXIS_RZ);

        return true;
    }

    @Override
    public boolean onSDKTouchEvent(MotionEvent ev) {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public boolean onSDKStateEvent(StateEvent ev) {
        // TODO Auto-generated method stub
        return false;
    }

};

}

InputInterceptor是用来截取客户端发送过来的数据的 然后要去实现IInputEventListener 这个接口 然后IInputEventListener接口里面的四个内部类应该就是 回调方法吧
但是这个回调是怎么实现的啊 这好像也没主动的去回调给C啊

1个回答

qq_32360535
qq_32360535   2016.01.27 15:04

图片说明
图片说明
这是demo的文档说明

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!