240 发简信
IP属地:河南
  • ExpandableRecyclerView

    ExpandableRecyclerView 使用RecyclerView 实现的折叠列表 效果图 支持特性: 流畅的展开和关闭动画 支持只展开...

    1.3 4256 2 13
  • 优雅的实现微信分享/支付,组件化

    微信分享,就需要有一个“${applicationId}.wxapi.WXEntryActivity”,这个操作在多包名或者是组件化的项目中非常...

  • Resize,w 360,h 240
    GridLayoutManager怎么居中?

    默认效果是这样 期望的效果是这样 期望是每一行类似ConstraintLayout中的chain spread inside 第一个居左,最后一...

  • 安卓播放器倍速功能的探索

    我找到的在安卓上面能实现的倍速的几种方式: vitamio ijkplayer vlc exoplayer 民间倍速版本 一种方式,一种坑 vi...

  • kotlin协程:使用协程,如何获取单例对象

    目前找到三种方式 切换到单线程获取单例 使用Coroutine提供的Mutex获取单例 使用CAS(AtomicReference)获取单例 三...

  • 使用CAS(AtomicReference)实现的单例模式

    CAS是项乐观锁技术,当多个线程尝试使用CAS同时更新同一个变量时,只有其中一个线程能更新变量的值,而其它线程都失败,失败的线程并不会被挂起,而...

  • 协程2-suspend函数

    可以认为上述代码,经过编译器的黑魔法,编译成如下代码 Continauation

  • dataBinding 多module 使用的问题

    在app module 和library module 中都设置 是可以正常使用的,但是呢,如果写了app module 是以runtimeOn...

  • Resize,w 360,h 240
    线程池原理解析

    一、为什么需要线程池 线程池是一种线程管理工具 常规的解释有这么几种: 线程有自己的栈内存 线程创建会发生操作系统调用,比较耗时 频繁的线程切换...

个人介绍
但行好事,莫问前程