xiaojiangren 2016-01-27 07:03 采纳率: 27%
浏览 1190

关于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条回答 默认 最新

  • xiaojiangren 2016-01-27 07:04
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器