240 发简信
IP属地:青海
  • 这个流程真的复杂,大佬牛皮!!!

    深入理解Android 之 Activity启动流程

    在进阶Android的路上,了解理解一个应用根Activity启动流程可以作为一个切入点,由此展开进阶之路。平时我们开发的应用都是展示在Android系统桌面上,这个系统桌面...

  • 感谢辉哥

    Android 进阶之旅 - 效能优化

    新年的第一篇文章,没想到自己又回来了,经过慎重的考虑还是决定再讲一期《效能优化》。虽然去年刚发表过 《以后,江湖再见了》[https://www.jianshu.com/p/...

  • Android 进阶之旅 - 效能优化

    新年的第一篇文章,没想到自己又回来了,经过慎重的考虑还是决定再讲一期《效能优化》。虽然去年刚发表过 《以后,江湖再见了》[https://www.jianshu.com/p/...

  • 120
    新年第三天就荣登 Github 日榜,只因我做对这件事!

    前言 在写 2019 年终总结时,我默默规划了下 2020 年的目标,其中一项就是:Android 进阶路线知识图谱 star 破 1k。 结果呢? 结果新年才过了 3 天,...

  • MainActivity 使用 postSticky 的时候,会把 Event 保存起来:
    public void postSticky(Object event) {
    synchronized (stickyEvents) {
    stickyEvents.put(event.getClass(), event);
    }
    // Should be posted after it is putted, in case the subscriber wants to remove immediately
    post(event);
    },这个就不会丢失了。
    在 SecondActivity 调用 register 的时候,
    if (subscriberMethod.sticky) {
    if (eventInheritance) {
    // Existing sticky events of all subclasses of eventType have to be considered.
    // Note: Iterating over all events may be inefficient with lots of sticky events,
    // thus data structure should be changed to allow a more efficient lookup
    // (e.g. an additional map storing sub classes of super classes: Class -> List<Class>).
    Set<Map.Entry<Class<?>, Object>> entries = stickyEvents.entrySet();
    for (Map.Entry<Class<?>, Object> entry : entries) {
    Class<?> candidateEventType = entry.getKey();
    if (eventType.isAssignableFrom(candidateEventType)) {
    Object stickyEvent = entry.getValue();
    checkPostStickyEventToSubscription(newSubscription, stickyEvent);
    }
    }
    } else {
    Object stickyEvent = stickyEvents.get(eventType);
    checkPostStickyEventToSubscription(newSubscription, stickyEvent);
    }
    }
    ,eventInheritance 默认是 ture,如果发现 stickyEvents 里面保存的Event 有当前的 Activity 所注册的 Event 父类(当然,还有别的其他情况,查看:isAssignableFrom 这个方法),那么就去出来,让当前类去执行。而此时,SecondActivity 已经 onCreate 好了,Toast 才可以正常显示。

    EventBus简单的使用

    前言:因为用到了第三方SDK,想用Bundle传递数据,发现里面的类没有序列化根本不行啊,所以就用了EventBus来传递数据,在此记录一下吧。一:添加依赖首先我们需要在主项...

  • 120
    Android DialogFragment 使用

    简介 项目里一直使用dialog,最近才发现谷歌早就推出了DialogFragment,由于平常写项目需求基本也都是继承dialog重写,发现使用DialogFragment...

  • 120
    Android对话框(Dialog)完全使用手册

    Dialog对话框是android常用的基础视图组件之一,本文总结了对话框常用的几种样式,以及自定义视图和带动画效果的对话框 Dialog虽然可以显示到屏幕上,但是Dialo...

  • 120
    Carson带你学Android:淘宝、天猫都在用的UI框架V-Layout,赶紧用起来吧!

    前言 V- Layout 是阿里出品的基础 UI 框架,用于快速实现页面的复杂布局,在手机天猫 Android版 内广泛使用 让人激动的是,在上个月V- Layout终于在G...

  • 120
    Android组件化框架搭建

    本篇文章已授权微信公众号 hongyangAndroid (鸿洋)独家发布 背景 当一个项目经过N手人开发,N个产品经理的蹂躏,N长时间的维护,此时一定存在大量代码冗余、业务...

  • 120
    安卓AOP三剑客:APT,AspectJ,Javassist

    AOP:面向切面编程(Aspect-Oriented Programming)。如果说,OOP如果是把问题划分到单个模块的话,那么AOP就是把涉及到众多模块的某一类问题进行统...

  • @very_mrq 我在 build 里面没有找到,通过 debug 打断点,可以看到确实有这么个文件,但不晓得怎么保存下来。

    gradle超详细解析

    *本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 一、为什么要学gradle Android studio已经出来很久了,相信大部分公司都已经从eclip...

  • 请教一个问题,build.gradle 编译之后会生成 class 文件,是一个 script 的类,这个 class 文件有没有办法能拿到?

    gradle超详细解析

    *本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 一、为什么要学gradle Android studio已经出来很久了,相信大部分公司都已经从eclip...

  • 牛 啤

    Gradle开发快速入门——DSL语法原理与常用API介绍

    说明 本文主要从实现原理和代码层面介绍Gradle开发相关知识。关于本文中提到的、Gradle中的基本概念等内容,可参考 Android Gradle配置快速入门http:/...

  • 120
    Gradle开发快速入门——DSL语法原理与常用API介绍

    说明 本文主要从实现原理和代码层面介绍Gradle开发相关知识。关于本文中提到的、Gradle中的基本概念等内容,可参考 Android Gradle配置快速入门http:/...