1.选中AS双击shift键 vmoption: 2.选择edit编辑输入以下命令: -Dfile.encoding=UTF-8 保存后重启AS
1.选中AS双击shift键 vmoption: 2.选择edit编辑输入以下命令: -Dfile.encoding=UTF-8 保存后重启AS
异常传播特性 当一个协程由于一个议程运行失败时,他会传播这个异常并传递给它的父级。接下来,父级会进行下面几步操作: 取消它自己的子级 取消它自己 将异常传播给它的父级imag...
DataBinding的意义: 让布局文件承担了部分原本属于页面的工作,使页面与布局耦合度进一步降低 DataBinding使用: build.gradle中配置 布局文件:...
LiveData和ViewModel的关系 在ViewModel中的数据发生变化是通知页面image.png当ViewModel数据发生变化通过LiveData通知View数...
ViewModel的诞生: 瞬态数据丢失 异步调用的内存泄漏 类膨胀提高维护难度和测试难度 ViewModel的作用: 它是介于View(视图)和Model(数据模型)之间的...
LifeCycle的诞生: 为了解决代码解耦的问题,将系统组件和普通组件尽可能的解耦 LifeCycle应用: 使用Lifecycle解耦页面与组件 使用LifecycleS...
CoroutineContext是一组用于定义协程行为的元素 Job:控制协程的生命周期 CoroutineDispatcher:向合适的线程分发任务 CoroutineNa...
取消作用域会取消它的子协程。 被取消的子协程并不会影响其余兄弟协程。 协程通过抛出一个特殊的异常CancellationException来处理取消操作。 所有kotlinx...
对于一个创建的协程(通过launch或者async),会返回一个Job实例,该实例是协程的唯一标示,并且负责管理协程的生命周期 一个任务可以包含一系列状态:新创建(New)、...
coroutineScope 与 runBlocking runBlocking 是常规函数,而coroutineScope 是挂起函数2.它们都会等待期协程体以及所有子协程...
Gradle abi 分包设置: 打包输出不同名称的apk包:
使用RecyclerView一次性加载100条数据,页面出现卡顿 原布局外部套用了NestedScrollView +LinearLayout 解决方案: RecyclerV...
Android Activity生命周期 onStart()与onResume()有什么区别? onStart()是activity界面被显示出来的时候执行的,但不能与它交互...
本系列文章如下: Android JNI(一)——NDK与JNI基础Android JNI学习(二)——实战JNI之“hello world”Android JNI学习(三)...
其实我很早就想写点关于骑手的短文了,一直没有动笔写是因为我想说点和别人不一样的,站在“正义”和“群众”的对立面,说点自己想说的。但是骑手们三天两头就登个热搜,今天在南方的艳阳...
有人说,人生的很多不顺遂不如意,不是你运气不好,不是你机会不够,不是社会残酷,而是你自己放弃了努力,你想要的生活才会变得离你越来越远。 想想自己,是不是想改变却一直在观望?是...
已经被老妈催得家都不想回了,有时候自己都在想,自己这一生都为了什么,小时候老妈说这样做,那样做,考大学选专业,这个专业好那个专业好.我完全就没有了选择权.而更别说在这25的年纪还没有对象了,每次回家都是结婚对象.除了这,我发现我再无话题和他们可聊.
逃离北上广后,我找不到对象了理想今年你几岁,你总是诱惑着年轻的朋友,你总是谢了又开,给我惊喜,又让我沉入失望的生活里。 又一个世纪在轮回,而我一无所获的坐在街头,只有理想在支撑着那些麻木的血肉。 -01...