240 发简信
IP属地:四川
  • 内容倒是挺丰富的,不过有几个细节需要注意下,避免误人。
    1.事件首先不是传递到activity而是先传递到DecorView的,DecorView中的dispatchTouchEvent里面会调用mWindow.getCallback(). dispatchTouchEvent(ev)(这个callback实际上就是当前activity,见Activity中的attach()方法内mWindow.setCallback(this)),然后才到你文中说的七点。
    2.

    /**
    * 源码分析:Activity.dispatchTouchEvent()
    */
    public boolean dispatchTouchEvent(MotionEvent ev) {

    // 仅贴出核心代码

    // ->>分析1
    if (getWindow().superDispatchTouchEvent(ev)) {

    return true;
    // 若getWindow().superDispatchTouchEvent(ev)的返回true
    // 则Activity.dispatchTouchEvent()就返回true,则方法结束。即 :该点击事件停止往下传递 & 事件传递过程结束
    // 否则:继续往下调用Activity.onTouchEvent

    }
    // ->>分析3
    return onTouchEvent(ev);
    }

    if()条件内的注释部分:返回true不是停止事件往下传递,而是事件在向下传递的过程中被消费而终止传递。看起来差不多实际上对新手会存在误导。😂

    Android事件分发机制详解:史上最全面、最易懂

    前言 Android事件分发机制是Android开发者必须了解的基础 网上有大量关于Android事件分发机制的文章,但存在一些问题:内容不全、思路不清晰、无源码分析、简单问...

  • 第一章 正则表达式字符匹配攻略

    第一章 正则表达式字符匹配攻略 正则表达式是匹配模式,要么匹配字符,要么匹配位置。请记住这句话。 然而关于正则如何匹配字符的学习,大部分人都觉得这块比较杂乱。 毕竟元字符太多...

  • @Jon_Snow09 :smile: 之前我好想是看明白了他为啥这样写,有原因的,你多看看。太久了我也就不得这个逻辑了。

    android组件化方案,让团队开发更有效率

    刚接到Leader组件化任务的时候,内心是有疑惑的。目前项目中,各种业务交杂在一起,互相跳转、互相请求数据。分模块的过程必然是痛苦的,需要增加模块之间通的信协议。对于一个5,...

  • @Blankj 你这说的是独立进程中跑一个单例,其他进程共享要共享这个单例都是与这个单例所在的独立进程通信的方式。但你没描述清楚,别的一般人会误以为是普通单例:sweat_smile:

    Android 开发规范(完结版)

    摘要 1 前言 2 AS 规范 3 命名规范 4 代码样式规范 5 资源文件规范 6 版本统一规范 7 第三方库规范 8 注释规范 9 测试规范 10 其他的一些规范 1 前...

  • 发图不发种,菊花万人捅:scream:

    修改系统TabLayout(下划线宽度,底部分割线,竖直分割线等)

    第一步:(类的提取) 首先打开系统TabLayout源码,查看所在的包 将TabLayout类复制到自己所建的包中,这时类中所引用的类因为是包权限关系会找不到 比如: 1:T...

  • 第19点第3条:控制数据的共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信。
    PS:我没理解错的话,单例是无法实现进程间数据共享的吧。:grin:

  • 然后:非常感谢博主的奉献,已采纳作为组内开发规范(当然修改了一部分)。哈哈哈哈

    Android 开发规范(完结版)

    摘要 1 前言 2 AS 规范 3 命名规范 4 代码样式规范 5 资源文件规范 6 版本统一规范 7 第三方库规范 8 注释规范 9 测试规范 10 其他的一些规范 1 前...

  • 第20条: 把一个基本数据类型转为字符串,`基本数据类型.toString()` 是最快的方式,`String.valueOf(数据)` 次之,`数据 + ""` 最慢;

    PS:据我10秒钟前查看源码,大多.toString()方法的实现都调用了String.valueOf()方法,所以,这一条说法的依据是什么?

    Android 开发规范(完结版)

    摘要 1 前言 2 AS 规范 3 命名规范 4 代码样式规范 5 资源文件规范 6 版本统一规范 7 第三方库规范 8 注释规范 9 测试规范 10 其他的一些规范 1 前...

  • 第19点第3条:控制数据的共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信。
    PS:我没理解错的话,单例是无法实现进程间数据共享的吧。:grin:

    Android 开发规范(完结版)

    摘要 1 前言 2 AS 规范 3 命名规范 4 代码样式规范 5 资源文件规范 6 版本统一规范 7 第三方库规范 8 注释规范 9 测试规范 10 其他的一些规范 1 前...

  • 已看明白你这里为什么要这样写了哈。

    PS:下一个问题
    被依赖的业务module如何能反向跳转回去?

    比如单独调试moduleA的时候,moduleA依赖moduleB, 在moduleA中通过URI跳转到moduleB了,,在moduleB中通过URI跳转回moduleA中不成功, RounterBus中queryIntentActivities处查询出来为0个。

    :unamused: :unamused:

    android组件化方案,让团队开发更有效率

    刚接到Leader组件化任务的时候,内心是有疑惑的。目前项目中,各种业务交杂在一起,互相跳转、互相请求数据。分模块的过程必然是痛苦的,需要增加模块之间通的信协议。对于一个5,...

  • 公共module commonlibrary的gradle中定义的buildConfigField "IS_DEBUG" 可以通过buildTypes {
    release {
    buildConfigField "boolean", "LOG_DEBUG", "false"
    }
    debug{
    buildConfigField ....
    }

    这种方式类添加BuildConfig的字段,而不需要你手动去使用idDebug变量的值来控制。:joy:

    android组件化方案,让团队开发更有效率

    刚接到Leader组件化任务的时候,内心是有疑惑的。目前项目中,各种业务交杂在一起,互相跳转、互相请求数据。分模块的过程必然是痛苦的,需要增加模块之间通的信协议。对于一个5,...

  • @dongjunkun :cold_sweat: 难道是你自己的库:stuck_out_tongue_winking_eye:

    SwipeToLoadLayout--小白也能轻松定制自己的刷新效果

    刚开始接触android的时候,就想着如果能定制一款属于自己的刷新效果,肯定会是一件很酷的事情,当然了,github上已经有了很多很炫酷的刷新效果,各种漂亮,但在项目中总要讲...

  • 其实我想说,这个库真的很烂。:sob: 不要喷我。:joy:

  • 其实我想说,这个库真的很烂。:sob: 不要喷我。:joy:

    SwipeToLoadLayout--小白也能轻松定制自己的刷新效果

    刚开始接触android的时候,就想着如果能定制一款属于自己的刷新效果,肯定会是一件很酷的事情,当然了,github上已经有了很多很炫酷的刷新效果,各种漂亮,但在项目中总要讲...

  • @安东尼_Anthony 啦啦啦...

    真实案例出发,再谈retrofit封装

    原文链接:Anthony的简书博客项目代码:CameloeAnthony/Ant 前言 在使用了一段时间的Retrofit之后,今天终于在这里讲解到了网络的部分。目前开源的H...

  • @idioitcbear 那这个梗就是你们后台太渣。:smile: 这种后台,该怼还是的怼起来

    真实案例出发,再谈retrofit封装

    原文链接:Anthony的简书博客项目代码:CameloeAnthony/Ant 前言 在使用了一段时间的Retrofit之后,今天终于在这里讲解到了网络的部分。目前开源的H...

  • 这么好的资料居然没人评论:smile:

    Groovy 官方文档翻译 - 01 - 语法

    1.注释 1.1.单行注释 1.2.多行注释 1.3.GroovyDoc 1.4.Shebang line 2.关键字 Groovy 中的所有关键字: 3.标识符 3.1.普...

  • Groovy 官方文档翻译 - 01 - 语法

    1.注释 1.1.单行注释 1.2.多行注释 1.3.GroovyDoc 1.4.Shebang line 2.关键字 Groovy 中的所有关键字: 3.标识符 3.1.普...