- 博客(17)
- 收藏
- 关注
原创 RxJava学习笔记
方法中,传递的参数this为Runnable,ObserveOnObserver实现的Runnable接口,run方法也在ObserveOnObserver中可以找到,当handler切换到主线程后,执行run方法,run方法执行在主线程,最终调用了用户实现的observer.onNext等方法。IO实例化时,创建了一个IOTask(),IOTask()的get()方法,返回一个IoScheduler(),在IoScheduler的构造方法中,可以看到创建了线程池。
2023-11-02 23:23:55 108
原创 Flutter开发学习记录1
InheritedWidget 用于数据共享,provider内部使用的就是 InheritedWidget(类似databinding,两个view用同一数据)一般会放在images文件夹下,与android、ios、lib包同级,在yaml中添加 assets:-images/代码确认没问题时报错,使用 flutter clean 命令,多试几次。sdk2.12以后,满足空安全。使用第三方库时,很多带有这个标识。建议用绝对路径,方便看出是自己的包。
2023-10-17 22:09:34 75
原创 Kotlin-构造函数
Kotlin构造函数主构造主构造直接写在类名后面class TestClass(_name: String) {}这里的_name是构造函数自己的参数,并不是成员变量,在类中其他方法也无法使用,需要给他赋值,最简单的赋值方式:class TestClass(private val name: String) { fun setText(){ println(name) } }这里相当于调用了给成员变量name赋值的方法,是一种省略写法
2022-01-29 18:13:15 1816
原创 Kotlin-部分内置函数用法记录(let、apply、run、with、also、takeIf、takeUnless)
Kotlin-部分内置函数用法记录(let、apply、run、with、also、takeIf、takeunless)
2022-01-22 10:35:31 2714
原创 Kotlin-反引号解决调用Java方法中含有Kotlin关键字问题
我们在使用Kotlin调用Java代码方法时,可能会遇到方法名刚好是Kotlin关键字,导致无法调用,此时只要把方法用反引号包裹就可以了public class JavaTest { public static void when(){ }}fun main() { JavaTest.`when`()}...
2021-11-28 15:48:37 1385
原创 Kotlin-函数参数的默认参数和具名函数
Kotlin是一门新语音,综合了很多老牌语言的有点,默认参数的用法借鉴了C++的用法函数参数中直接给出默认值,调用方就可以不传此值,使用默认值fun main() { action1("李四", 20) action2("王五") action2("王五", 23) action3()}private fun action1(name: String, age: Int) {}private fun action2(name: String, age:
2021-11-28 15:15:18 2257
原创 Jetpack-Room框架使用与源码分析
目录一、简介1、Room是什么2、为什么要使用Room二、Room基本用法1、引入依赖2、Room的三大角色EntityDAODatabase3、调用数据库三、Room配合Jetpack全家桶使用四、Room源码分析一、简介1、Room是什么Room框架是Android Jetpack众多组件库的一员。Jetpack的出现统一了Android开发生态,各种三方库逐渐被官方组件所取代,Room逐渐取代竞品成为最主流的数据库ORM框架。Room是SQLite数据库的抽象,让用户能够在充分利用SQLite的
2021-11-25 14:55:30 2338
原创 Jetpack-ViewModel用法与源码分析
目录前言一、ViewModel使用1、定义ViewModel2、创建ViewModel二、源码分析1、创建流程ViewModelStoreViewModelProvider.NewInstanceFactory()get(MyViewModel::class.java)2、Activity重建3、ViewModel生命周期前言ViewModel组件的作用就是保证数据的稳定性。当我们在某Activity输入100个字段以后,发生横竖屏切换,Activity重建,此时数据会保存在ViewModel中,Act
2021-11-21 22:45:29 1004
原创 Jetpack-DataBinding双向绑定基本使用与原理分析
使用场景在Android开发初期,基本都会使用MVC模式,但随着业务的增加,Activity会变得很臃肿,业务代码与界面显示全部耦合在一起,扩展性差,维护起来很不方便,于是MVP模式就应运而生了。MVP模式实现了V和M的解耦,分层清晰,把业务处理搬到P层,通过接口实现V层和P层之间通信。MVP模式也存在一些问题,随着项目的增大,接口类会越来越多,而且每一个小的改动,都需要通过接口来通信,有时候一个简单的功能,都需要写好几个接口,会造成接口爆炸。这时候MVVM模式就出现了。MVVM模式同样也是解耦,将业
2021-11-21 16:41:14 3719 1
原创 Jetpack-自定义LiveData解决数据粘性(倒灌),拿来就能用
背景我们在使用LiveData的时候,有时需要在两个页面监听同一个LiveData数据的变化,从第一个页面进入第二个页面时,第二个页面刚刚订阅,就会收到第一个页面最后一次数据的变化。一般地,在使用LiveData时,我们都会先订阅,后setValue,但如果我们先setValue,后订阅,会发现我们之前setValue的值也会回调onChange,这就是数据粘性。造成这种数据粘性的原因在我上一篇文章有分析,这里就不再赘述,我们大多数情况是不需要这种粘性数据的,下面我们就通过自定义LiveData来去除粘性
2021-11-17 13:50:24 936
原创 Jetpack-ViewBinding使用方法简介
ViewBinding是通过视图绑定,给每个xml文件生成一个类,通过这个类,我们可以直接获得控件对象,不需要再findViewById。与DataBinding相比,ViewBinding更加轻量,速度更快,再比较简单的项目开发时,用起来很方便。同时ViewBinding编译安全,不会像ButterKnife或者Kotlin Android Extensions一样,能够拿到其他xml文件中的控件id,这样容易带来一些粗心导致的错误。ViewBinding使用第一步 开启ViewBindingan
2021-11-15 23:11:22 1157
原创 Jetpack-LiveData用法与源码分析
LiveData用法与原理分析LiveData定义和作用LiveData用法LiveData源码分析新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入LiveData定义和作用LiveData是一种可观察的数据存储器类。
2021-11-14 19:37:18 955
原创 Jetpack-Lifecycle用法与源码分析
Lifecycle使用和源码分析Lifecycle作用和优势Lifecycle几种使用方法导入依赖基本用法使用DefaultLifecycleObserver用法再封装一层接口的用法(在P层直接使用生命周期方法)源码分析功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLo
2021-11-12 18:02:51 1477
原创 Android百度地图,后台返回的坐标,设置地图中心位置,缩放比例自适应,弹出窗体等
一、概述地图开发是android开发中比较常见的一个模块,以前做项目都直接使用了百度地图提供的定位SDK。现在公司在物联网的项目有个需求,不需要手机定位,而是由其他设备定位,定时将坐标直接返回给后台,再由后台返回给app,在app中拿到坐标进行展示,并实现比较ok的展示效果。 二、百度地图相关配置在百度开发者网站上下载相应的SDK导入,配置key值,添加相应权限。 三、展示地图1、我们的需求是后
2017-02-03 16:14:32 6447
原创 Android APP启动白屏问题解决办法
一、问题原因Activity只能到onResume时,才能展示到前台。onCreate中的setContentView();方法有耗时操作,所以,如果为MainActivity设置背景的话,无论onCreate-onResume速度多快,都会出现短暂的白屏或者黑屏(视application的background属性而定)。二、解决办法 找到清单文件中设置主题这句话,新增主题或者修改默认主题即可,修
2017-02-03 10:54:47 5240 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人