Android
文章平均质量分 91
行到水穷处_
Android、React、微信小程序
展开
-
Android View的工作流程
View的工作流程本文主要介绍View的工作流程,也就是measure、layout、draw这三大流程,以及MeasureSpec,掌握这些知识就可以轻松的自定义View以及自定义ViewGroup。measureAndroid的视图树中,根View肯定是一个ViewGroup(DecorView就是根View,实际上是一个FrameLayout),所以了解测量过程,应该从ViewGroup开始,沿着视图树去看,这样更容易理解。ViewGroup继承自View,View的的measure方法中会调用原创 2021-08-01 23:08:23 · 160 阅读 · 0 评论 -
Android必读的四大组件汇总
Service有两种启动方式:startService和bindService[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S4JmL3HD-1627400526372)(https://developer.android.com/images/service_lifecycle.png)]startService通过 startService 启动后,service 会一直无限期运行下去,只有外部调用了 stopService()或 stopSelf()方法时,该原创 2021-07-27 23:42:12 · 321 阅读 · 2 评论 -
一文读懂kotlin协程常用知识点
先不讲概念,先上代码,看一下协程怎么用的。retrofit 请求代码interface HttpInterface { @GET("/photos/random") suspend fun getImageRandom(@Query("count") count: Number): ArrayList<ImageBean>}activity 中调用代码override fun onCreate(savedInstanceState: Bundle?) { li原创 2021-07-26 10:25:37 · 485 阅读 · 0 评论 -
Android事件分发及应用
事件分发事件分发是Android View体系里非常重要的知识点,目录事件分发onInterceptTouchEventonTouchEventdispatchTouchEventrequestDisallowInterceptTouchEvent滑动冲突自定义View时触摸事件处理手势事件监听简单理解熟悉事件分发之后可以自定义出各种交互复杂的View,也可以解决开源库中的各种滑动冲突bug。下边开始具体的实验和分析。创建了2个自定义的ViewGroup:原创 2021-07-24 01:03:12 · 182 阅读 · 2 评论 -
Android 消息机制
Android 消息机制Android 消息机制也就是 Handler 的运行机制,Handler 运行时需要底层的 Looper 和 MessageQueue 的支持,Handler 作为上层的接口,所以我们开发时大部分情况只需要与 Handler 交互就可以了,并未过多涉及到 Looper 和 MessageQueue。下面将从使用的角度结合源码分析 Handler 的运行机制。平常我们主要使用 Handler 进行线程通信,比如:子线程向主线程发送消息,子线程之间发送消息,如下代码完成了 2 个子原创 2021-04-22 19:18:23 · 72 阅读 · 0 评论 -
Activity 的 launchMode 与 Intent 的 flags
Activity 的 launchMode 与 Intent 的 flagstask也就是任务(栈),是一系列 Activity 的集合,每打开一个 Activity 都会将其放入到对应的任务栈中。按返回键时栈中的 Activity 会依次出栈,从而达到了逐级返回上一个界面的效果。当我们按下手机上的多任务键(菜单键)时,系统的多任务界面就会展示最近 task,注意:这里展示的并不是应用,而是 task,如果一个应用当前有 2 个 task,就会在这个界面有 2 个同名截屏页,如下图所示:原创 2021-04-19 22:03:38 · 130 阅读 · 0 评论 -
Android ThreadLocal特性以及源码解读
Android ThreadLocal特性以及源码解读首先讲一下特性:ThreadLocal 以线程为作用域存取数据,不同线程有不同的数据副本,各个线程副本之间读取互不干扰。举个例子:ThreadLocal<String> testThreadLocal = new ThreadLocal<>();testThreadLocal.set("123");Log.i("zx", "主线程中testThreadLocal值为" + testThreadLocal.get());原创 2021-04-15 09:52:56 · 178 阅读 · 0 评论