Tim's Track

书写是为了更好地思考


  • 首页

  • 关于

  • 归档

  • 标签

  • 搜索

Android 中更新 UI 的线程限制问题探究

发表于 2020-04-18 | 分类于 原理分析 , 探究 | 阅读次数
字数统计 2,389 | 阅读时长 9

Android 中子线程真的不能更新 UI 吗?

先说结论:Android 中子线程在满足一定的条件下可以更新 UI。

  • 在 ViewRootImpl 还没创建出来之前
    • UI 修改的操作没有线程限制。
  • 在 ViewRootImpl 创建完成之后
    1. 保证「创建 ViewRootImpl 的操作」和「执行修改 UI 的操作」在同一个线程即可。也就是说,要在同一个线程调用 ViewManager#addView 和 ViewManager#updateViewLayout 的方法。
      • 注:ViewManager 是一个接口,WindowManger 接口继承了这个接口,我们通常都是通过 WindowManger(具体实现为 WindowMangerImpl) 进行 view 的 add remove update 操作的。
    2. 对应的线程需要创建 Looper 并且调用 Looper#loop 方法,开启消息循环。
阅读全文 »

RxJava中switchMap和flapMap 有何区别?

发表于 2020-03-20 | 分类于 RxJava | 阅读次数
字数统计 727 | 阅读时长 3

flapMap 和 switchMap 都是 RxJava 中的转换操作符,都可以将上游的输入转换为一个数据源(比如 Observable)输出给下游。

阅读全文 »

关于EditText几个小Tips

发表于 2019-10-31 | 分类于 Android | 阅读次数
字数统计 381 | 阅读时长 2

1.显示清除按钮

最简便的方式:利用 kotlin 拓展函数,通过 TextView#setCompoundDrawablesWithIntrinsicBounds 方法实现

阅读全文 »

迁移到AndroidX

发表于 2019-10-27 | 分类于 Android | 阅读次数
字数统计 220 | 阅读时长 1

Android Studio 提供的 Migrate to AndroidX 功能不是特别完善,很多文件的包名替换不完整。可以通过自定义脚本来处理这个流程。

阅读全文 »

保险基础知识

发表于 2019-05-26 | 分类于 技术之外 | 阅读次数
字数统计 5,310 | 阅读时长 18

1、为什么要买保险?

购买保险是为了减少预期以外的事件对被保险人的财务状况造成冲击,为受益人提供经济补偿减轻负担。用经济学原理来解释就是被保险人通过缴纳保费换取未来财务状况更大的确定性。

阅读全文 »

浅谈重构

发表于 2018-11-14 | 阅读次数
字数统计 1,238 | 阅读时长 4

1.何谓重构

「重构」有两种不同含义:

  • 作为名词时的含义:软件内部结构的一种调整,目的是在不改变「软件的可视行为」前提下,提高它的可拓展性,降低修改成本。
  • 作为动词时的含义:使用一系列重构的准则,在不改变「软件的可视行为」前提下,调整其结构。
阅读全文 »

Skeleton 工作原理

发表于 2018-11-07 | 分类于 框架原理 | 阅读次数
字数统计 1,527 | 阅读时长 7

1.简介

Skeleton Screen(加载占位图)是近年流行的加载控件,通常表现形式是在界面上待加载区域填充灰色的占位图,与线框图的效果非常相似。Skeleton Screen 本质上是界面加载过程中的过渡效果。

阅读全文 »

RxJava-订阅与线程切换原理

发表于 2018-06-24 | 分类于 框架 | 阅读次数
字数统计 1,386 | 阅读时长 6

概述

RxJava 是什么呢?根据RxJava在GitHub上给出的描述 RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java 大致意思是:一个可以在 JVM上 使用的,是由异步的基于事件编写的通过使用可观察序列构成的一个库。

关键词:异步,基于事件,可观察序列

本文主要讲述 RxJava 的订阅原理。

阅读全文 »
123…6
Tim Lin

Tim Lin

Live a life you will remember.

46 日志
31 分类
28 标签
GitHub
© 2020 Tim Lin
由 Hexo 强力驱动
主题 - NexT.Pisces
0%