- 博客(21)
- 收藏
- 关注
原创 安卓中的内存泄漏(个人目前学习的部分)
这里的handler也是一个非静态匿名内部类,他跟上面的一样,也会持有Activity的引用,我们知道handler是运行在一个Looper线程中的,而Looper线程是轮询来处理消息队列中的消息的,假设我们处理的消息有十条,而当他执行到第6条的时候,用户点击了back返回键,销毁了当前的Activity,这个时候消息还没有处理完,handler还在持有Activity的引用,这个时候就会导致无法被GC回收,造成了内存泄漏。避免在后台运行浪费资源。否则这些资源不会被GC回收,就会造成内存泄漏。
2024-07-31 09:02:27 529
原创 kotlin基础day3
Android Jetpack 与其他库中的 Kotlin 支持 - KTX 扩展 为现有的 Android 库添加了 Kotlin 语言特性,如协程、扩展函数、lambdas 与命名参数。大社区 - Kotlin 得到了社区的大力支持与许多贡献,该社区在全世界范围内都在增长。具有较多的参数的类应该格式化成每个构造函数的参数都位于与缩进的单独行中。与 Java 的互操作性 - 可以在应用程序中将 Kotlin 与 Java 编程语言一起使用, 而无需将所有代码迁移到 Kotlin。
2024-04-23 19:54:26 360
原创 kotlin基础
Kotlin 是一个由 Dody G 的开源项目,旨在为初学者提供一套完整的 Kotlin 编程语言教程。本项目的目的是通过一系列精心设计的课程和示例,帮助开发者快速上手 Kotlin 并掌握其主要特性。无论您是刚接触编程的新手还是经验丰富的开发者,都可以在这个项目中找到有价值的资料。泛型与集合:掌握 Kotlin 集合的使用方法,以及如何使用泛型编写可重用的代码。函数与高阶函数:了解如何创建和使用函数,以及如何利用高阶函数进行更高级的操作。扩展函数与属性:了解如何扩展现有类的功能,而无需对其进行修改。
2024-04-22 18:09:09 685
原创 kotlin的模块化开发
模块化开发思路就是:单独开发每个模块,用集成的方式把他们组合起来,就能拼出一个app。app可以理解成很多功能模块的组合,而且有些功能模块是通用的,必备的,像自动更新,反馈,推送,都可以提炼成模块,和搭积木很像,由一个壳包含很多个模块。
2024-04-19 18:02:16 1030 1
原创 kotliln基础
元素的通用的范性集合,这个集合是一个只读的集合,它提供给我们可以获取集合的size,是否为空,是否包含某个或某组数据等方法。一个范性有序的只读集合。返回根据指定函数转换后,产生的最大值的原始元素(返回的还是原始元素)。返回根据指定函数转换后,产生的最小值的原始元素(返回的还是原始元素)。遍历所有的元素,为每一个元素创建一个集合,最后把所有的集合放在一个集合中。返回符合指定函数条件的单个元素,如果没有符合或者超过一个,则返回null。返回符合指定函数条件的单个元素,如果没有符合或者超过一个,则抛出异常。
2024-04-01 19:55:29 709
原创 kotlin基础
Kotlin 1.3添加了协程Coroutine的概念,文档中介绍协程是一种并发设计模式,可以在Android平台上使用它来简化异步执行的代码。异步代码同步化:使用编写同步代码的方式编写异步代码。轻量:您可以在单个线程上运行多个协程,因为协程支持挂起,不会使正在运行协程的线程阻塞。挂起比阻塞节省内存,且支持多个并行操作。内存泄漏更少:使用结构化并发机制在一个作用域内执行多项操作。内置取消支持:取消操作会自动在运行中的整个协程层次结构内传播。Jetpack集成。
2024-03-31 19:44:59 882 1
原创 kotlin基础
上一篇文章我们介绍了Kotlin中扩展函数和高阶函数在实际开发中的运用。这一篇文章我们继续讲解Kotlin中的基础知识类与继承。关于接口、单例类、数据类、密封类、枚举类计划将作为单独文章来写,因为Kotlin中的类有很多细节方面的知识点,放在一篇文章来写感觉很难介绍清楚。下面我们开始本篇文章的学习。其实类与继承相对于高阶函数和Lambda表达式是更容易理解一点。但是这其中密密麻麻的小知识点,在我们实际开发中都是会遇到的,我们不能只停留在代码搬运的层面上,而是要去理解它。这样我们才能在实际开发中灵活的运用它。
2024-03-28 19:34:21 985
原创 kotlin
创建协程的方法launch/async一共,除了最后一个是协程的代码块以外,另外两个参数都是用来的,如协程上下文是用以控制协程运行环境的,包括在什么线程中去运行,句柄和树形关系以及何时切换线程,通过传递给launch/async的参数CoroutineContext。以及CoroutineStart就可以控制协程的运行。首先我们来看一下协程上下文对象CoroutineContext。
2024-03-27 19:26:01 864
原创 kotlin基础
此函数以一个“谓词”函数作为参数,用于确定哪些元素应包含在过滤后的集合中。如果我们想以自定义方式对集合进行排序,我们可以使用 sortBy 函数。该函数以一个“选择器”函数作为参数,用于确定集合中元素的顺序。该函数以一个“Comparator”作为参数,用于确定集合中元素的顺序。此函数将“转换”函数作为参数,用于确定哪些元素应包含在转换后的集合中。此函数将“转换”函数作为参数,用于确定应如何转换集合中的元素。函数将字符串列表转换为它们的长度列表,同时也过滤掉。如果我们想展平一个集合的集合,我们可以使用。
2024-03-26 19:28:25 347
原创 kotlin基础(数据类型)
这也适用于连接字符串与其他类型的值, 只要表达式中的第一个元素是字符串,但是 Kotlin 中有字符串模板,大部分情况下建议使用字符串模板来替代。Kotlin 有两种类型的字符串字面值:转义字符串可以有转义字符, 以及原始字符串可以包含换行以及任意文本。在 Kotlin 中还有一点与 Java 不同的是,Kotlin 中数字不存在隐式的拓宽转换。Kotlin 中的位运算和 Java 不同的是没有用特殊符号来表示,可以采用了中缀函数方式调用具名函数。,即一些小段代码,会求值并把结果合并到字符串中。
2024-03-25 19:52:01 253
原创 kotlin基础
这里要搞明白什么是函数类型?很遗憾,这是不行的,函数名不是函数引用,函数名不是函数引用,函数名不是函数引用,不过 Kotlin 提供了双冒号。当然了,这不是说类中的方法就一定都是这样引用的,而是要考虑到方法的调用是否需要依赖于对象实例,像。中的方法,就可以像函数那样直接调用,因为不依赖于对象实例,所以函数类型也不会多一个。这里就有一个问题,如果不是匿名函数,而是具名函数,能否直接把函数名作为参数传入呢?来引用一个成员方法,那么该函数引用对应的函数类型就会在参数列表第 1 位多一个。
2024-03-24 18:39:46 901 1
原创 kotlind day2
同时它的功能更为强大,更为灵活和更具表现力。当我们的需要的分支枚举完毕,可以使用。如符合条件就打印输出,同时返回数值。
2024-03-21 19:28:58 281 1
原创 kotlin基础2
具有较多的参数的类应该格式化成每个构造函数的参数都位于与缩进的单独行中。此外,结束括号应该在新行上。-为所有属性添加 getters ,如果为 var 类型同时添加 setters – equals() - - haseCode() – toString() – copy()在 Lambdas 表达式中,大括号与表达式间要有空格,箭头与参数和函数体间要有 空格。在使用简短而非嵌套的lambda中,建议使用 it 而不是显式地声明参数。尽管语义是相似的,但是有 一些风格上的约定在什么时候更偏向于另一个。
2024-03-21 19:24:37 900 1
原创 kotlin基础
Kotlin 是一个由 Dody G 的开源项目,旨在为初学者提供一套完整的 Kotlin 编程语言教程。本项目的目的是通过一系列精心设计的课程和示例,帮助开发者快速上手 Kotlin 并掌握其主要特性。无论您是刚接触编程的新手还是经验丰富的开发者,都可以在这个项目中找到有价值的资料。泛型与集合:掌握 Kotlin 集合的使用方法,以及如何使用泛型编写可重用的代码。函数与高阶函数:了解如何创建和使用函数,以及如何利用高阶函数进行更高级的操作。扩展函数与属性:了解如何扩展现有类的功能,而无需对其进行修改。
2024-03-21 08:45:05 124 1
原创 MVVM
baseViewHolder.setText(R.id.tv_pao,dataBean.getAuthname()+"创作");baseViewHolder.setText(R.id.tv_pao,dataBean.getAuthname()+"创作");
2023-12-14 18:30:49 36 1
原创 MvvMfragment切换
customTabEntities.add(new MyCustomEntity("商城",0,0));customTabEntities.add(new MyCustomEntity("关注",0,0));customTabEntities.add(new MyCustomEntity("推荐",0,0));//fragment增删改查。//fragment管理器。//fragment事务。//fragment提交。
2023-12-12 20:08:58 74
原创 mvvm登陆注册视频页面
Toast.makeText(LoginActivity.this, "登陆成功", Toast.LENGTH_SHORT).show();Toast.makeText(LoginActivity.this, "登陆失败", Toast.LENGTH_SHORT).show();
2023-12-11 20:02:49 50
原创 ActivityBinding的内容
mainBinding.tvViewBinding.setOnClickListener(view1 -> Toast.makeText(MainActivity.this, "霓后", Toast.LENGTH_SHORT).show());Toast.makeText(getContext(), "哈哈哈", Toast.LENGTH_SHORT).show();安卓activitybinding的布局方式 可以直接在后台设置布局的内容 ,运用了帧布局 显示在主页面上。//添加删除 替换显示隐藏。
2023-12-08 18:29:06 126 3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人