摘要: BaseActivity中的onDetachedFromWindow() 阅读全文
posted @ 2026-04-28 16:11 touchmore 阅读(5) 评论(0) 推荐(0)
摘要: AI原生开发范式 Vibe Coding(氛围编程) 概念定义 Vibe Coding 是由 AI 领域专家 Andrej Karpathy 于 2025 年正式提出的 AI 驱动开发范式,核心是通过自然语言与 AI 对话生成代码,开发者从 "逐行编写代码的执行者" 转变为 "需求定义者、方向把控者 阅读全文
posted @ 2026-04-28 09:50 touchmore 阅读(11) 评论(0) 推荐(0)
摘要: 1、AudioAlbumDetailActivity 2、MVPBaseActivity MVP 架构的 Activity 基类,所有业务 Activity 的公共父类。 3、BaseActivity MVP 架构中负责管理 Presenter 生命周期的 Activity 基类。 **已查看文件* 阅读全文
posted @ 2026-04-23 21:27 touchmore 阅读(5) 评论(0) 推荐(0)
摘要: val result = doLongTask() println(result) 又有两个情况,不太明白代码执行顺序。 1、「协程内部会阻塞」 suspend fun doLongTask(taskName: String, delayTime: Long): String { delay(del 阅读全文
posted @ 2026-01-09 15:55 touchmore 阅读(9) 评论(0) 推荐(0)
摘要: 协程是运行在线程之上的、由用户程序控制的、更高级的并发抽象。一个线程可以同时运行多个协程,由协程调度器负责在它们之间进行高效的、用户态的切换。 阅读全文
posted @ 2026-01-09 11:03 touchmore 阅读(5) 评论(0) 推荐(0)
摘要: suspend fun,会挂起当前协程,不阻塞线程。 它能挂起当前协程的执行流程,但不会阻塞协程所在的线程,这也是协程相比线程更轻量、更高效的核心原因之一。 挂起vs阻塞 阻塞(Block):线程停在原地等待任务完成(比如网络请求、文件读写),这段时间线程什么都做不了,CPU 资源被浪费。 挂起(S 阅读全文
posted @ 2026-01-08 16:45 touchmore 阅读(15) 评论(0) 推荐(0)
摘要: 协程,代码执行顺序(2) //示例3 fun main() = runBlocking { val deferred1 = async { println("calculateSum1") calculateSum(1, 2) } println("deferred1") val deferred2 阅读全文
posted @ 2026-01-08 15:53 touchmore 阅读(4) 评论(0) 推荐(0)
摘要: 阻塞与非阻塞 这是Android开发中处理耗时操作的关键概念。在IO操作(网络请求、文件读写、数据库访问)、多线程(线程同步)/多进程通信中频繁出现。 描述程序执行时等待操作完成的两种模式。区别是:操作未完成时,当前执行流是否会被挂起等待。 1、阻塞(模式) (耗时)操作未完成前,当前线程/进程/执 阅读全文
posted @ 2026-01-08 15:01 touchmore 阅读(18) 评论(0) 推荐(0)
摘要: 协程,代码执行顺序 fun main() = runBlocking { println("main start: ${Thread.currentThread().name}") // 第14行 val job = launch { // 第16行 println("coroutine is ru 阅读全文
posted @ 2026-01-08 13:24 touchmore 阅读(6) 评论(0) 推荐(0)
摘要: 这段代码,为什么不能加if(mOnKeyListener == null) 这段代码不能加 `if(mOnKeyListener == null)` 判断的原因主要有以下几点: 1. **位置问题**:当前代码位于 `onBindViewHolder` 方法内部,每次绑定数据时都会执行。如果加上 ` 阅读全文
posted @ 2025-12-18 19:54 touchmore 阅读(12) 评论(0) 推荐(0)