背景 通常我们会遇到项目中存在很多模块的情况,每次构建都会花费好久,但是又不知道每个模块耗费多久,因此使用该工具可以很方便的检测,用来决定如何优化项目结构 实现效果 这样很容...
背景 通常我们会遇到项目中存在很多模块的情况,每次构建都会花费好久,但是又不知道每个模块耗费多久,因此使用该工具可以很方便的检测,用来决定如何优化项目结构 实现效果 这样很容...
在 Android 项目上工作,我们需要集成很多不同的依赖项,为了管理这些依赖项,我们使用像 Dagger 这样的依赖注入框架。 但是要设置和使用 Dagger 需要大量的样...
当async作为根协程时,被封装到deferred对象中的异常才会在调用await时抛出。
当async作为子协程时,那么异常并不会等到调用await时抛出,而是立刻抛出异常。
kotlin<第九篇>:协程的异常处理一、组合上下文中的元素 CoroutineContext 是一组用于定义协程行为的元素。它由如下几项组成: 可以使用 + 运算符组合上下文: 二、协程上下文的继承 对于新建的...
前言 前面我们说了Kotlin的反射就是把类的信息保存到了KClass,通过KClass可以获取类的一些信息 可以查看文章: # Kotlin反射全解析2 -- 超级好用的K...
分享小伙伴的面经~ 前言 虽然面试已经过去大半年,但是依旧能回忆起当初面试场景,所以凭着记忆给大家分享一段面经。2020年疫情期间我总共面试了6家公司分别是阿里巴巴(已入职)...
这是 Stack Overflow 上最热门的几个 Kotlin 问题,每个问题如果更深入的分析,都可以单独写一篇文章,后面我会针对这些问题,在进一步的分析。 通过这篇文章你...
一、概述 ANR(Application Not responding),是指应用程序未响应,Android系统对于一些事件需要在一定的时间范围内完成,如果超过预定时间能未能...
前言 我们继续来聊反射,或许对于Java开发者来说,Class很熟悉,不过不熟悉也没事,我们来看Kotlin中的反射类:KClass。 至于什么是反射可以查看前面一篇文章: ...
什么是注解 注解,通俗的来说,就是像注释一样,是由程序员在代码中加入的一种“标注”,不影响所编写的原有代码的执行。而这种标注(注解)可以被编码用的IDE、编译器、类加载器的代...
Android中多个弹窗的排队展示 在实际的开发中,我们会遇到多个弹窗的问题,又不能一次全部弹出,所以我们的代码就是 if else if else 循环嵌套。 例如我们在工...
请点赞,你的点赞对我意义重大,满足下我的虚荣心。🔥 Hi,我是小彭。本文已收录到 GitHub · Android-NoteBook[https://github.com/p...
前言 本文属于《Android构建MVVM》系列开篇,共六个篇章,详见目录树该系列文章旨在为Android的开发者入门MVVM架构,掌握其基本开发模式辅以讲解Android ...
概念 实际就是kotlin官方提供的线程API,相当于AsyncTask 特性:非阻塞挂起,可挂起/恢复执行 本质:协程就是个线程框架协程的挂起本质就是线程切出去再切回来 依...
需求:界面由两部分组成,顶部一个图片,图片下面是列表。在列表滑动时,图片跟着滑动。并且列表要类似ViewPager,一次滑动一个item。 实现:CoordinatorLay...
MVC、MVP和MVVM是常见的Android三种架构设计,随着时间的推移,MVC使用率逐渐下降,MVP和MVVM的使用相对比较广泛一些,还是那句话:没有最好的架构,只有最适...
真的是如你说的这样吗?连续多次调用setValue优化后只取最有一次?感觉这里是不对的,可以试一下哦。
postValue应该是只取最新一次,而setValue在UI可见状态下每次都能接受到的;
文中提到第二点:2.如果在执行中又来了一条数据虽然由于mDispatchingValue 的缘故retun了本次执行..
这里似乎有问题呢,都是在主线程中执行的,怎么会在执行中又来一条数据???
这种情况只会发生在主线程递归调用的情况下。所以上面两个变量是用来控制递归调用的。
比如在onChanged()中又执行了setValue();
LiveData数据通知解析以及死锁问题处理前言 LiveData是Android常用的组件,它代表具有生命周期的数据,是MVVM框架组成不可或缺的一部分 问题场景 在我们的代码案例中,我们点击A页面的List中的一个...