Android上层实现java代码实现,仅仅实现功能还不能体现实力,还要写出一手看起来优雅的代码,今天总结下java内部类如何可以优雅的实现Android Touch事件从源头传递给Activityf分发。
外围类的窗口及桥梁
我们从实际列子出发,看下Android源码中如何通过作为内部类实现Touch事件完整地传递由fromwork层到WMS到ViewRootImpl通过PhoneWindow联系到Activity再到布局View呢。
WindowManagerService通过代理对象(IWindow.Stub.Proxy)进程间通信方式Binder通知到远端IWindow.Stub对象,这个对象正好是ViewRootImpl的内部类W实例mWindow,因为W是其内部类,用来和远端进程通信,接受消息,作为一个接收端,收到消息之后并很轻松通知到外围类,可以就是一体的内部沟通,代码如下:详细推荐看一篇文章:http://blog.csdn.net/a992036795/article/details/51690303
我们可以把通过点击事件把touch事件的调用流程dump出来:
button1.setOnTouchListener(new View.OnTouchListener() {
@Override
public