<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[NorthM1的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/NorthM1</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; NorthM1]]></copyright><item><title><![CDATA[协程学习笔记3]]></title><link>https://blog.youkuaiyun.com/NorthM1/article/details/159278486</link><guid>https://blog.youkuaiyun.com/NorthM1/article/details/159278486</guid><author>NorthM1</author><pubDate>Fri, 20 Mar 2026 18:32:27 +0800</pubDate><description><![CDATA[Channel实际上是一个并发安全的队列，它可以用来连接协程，实现不同协程的通信。]]></description><category></category></item><item><title><![CDATA[协程学习笔记2]]></title><link>https://blog.youkuaiyun.com/NorthM1/article/details/159175247</link><guid>https://blog.youkuaiyun.com/NorthM1/article/details/159175247</guid><author>NorthM1</author><pubDate>Wed, 18 Mar 2026 15:15:20 +0800</pubDate><description><![CDATA[本文介绍了Kotlin Flow的相关特性：1. Flow是一种冷流，只有在被收集时才会执行。2. 可以通过flow构建器创建流，并使用flowOf构建固定值流。3. Flow具有上下文保存特性，默认在调用协程的上下文中执行，可使用flowOn切换上游操作的上下文。4. 使用launchIn可以在指定协程中收集流。5. Flow支持超时取消，但需要添加cancellable()才能正确响应取消操作。文中通过多个测试用例演示了这些特性的实际应用效果。]]></description><category></category></item><item><title><![CDATA[协程学习笔记1]]></title><link>https://blog.youkuaiyun.com/NorthM1/article/details/159124484</link><guid>https://blog.youkuaiyun.com/NorthM1/article/details/159124484</guid><author>NorthM1</author><pubDate>Tue, 17 Mar 2026 15:01:53 +0800</pubDate><description><![CDATA[文章摘要：本文探讨了Kotlin协程中的三个关键问题：1) CPU密集型任务的取消处理，介绍了isActive、ensureActive()和yield()三种解决方案；2) 协程取消时的资源释放，说明finally块中挂起函数的问题及使用NonCancellable的解决方法；3) 协程异常处理机制，包括异常传播、SupervisorJob的使用、异常捕获方式（CoroutineExceptionHandler）以及异常聚合现象。文章通过代码示例详细演示了各种场景下的处理方式。]]></description><category></category></item><item><title><![CDATA[Room的创建方法]]></title><link>https://blog.youkuaiyun.com/NorthM1/article/details/158355540</link><guid>https://blog.youkuaiyun.com/NorthM1/article/details/158355540</guid><author>NorthM1</author><pubDate>Tue, 24 Feb 2026 21:51:41 +0800</pubDate><description><![CDATA[代码后序还要自行添加get和set方法来访问私有变量，不然room无法获取数据。@Ignore用于让room忽略这个构造方法，这样子room在使用的时候就会使用全参构造，不用则会报错。@Ignore也可以用于注释成员变量，如此做的话room不会创建这个属性。]]></description><category></category></item><item><title><![CDATA[安卓底部导航栏BottomNavigationView+Navigation]]></title><link>https://blog.youkuaiyun.com/NorthM1/article/details/158319662</link><guid>https://blog.youkuaiyun.com/NorthM1/article/details/158319662</guid><author>NorthM1</author><pubDate>Mon, 23 Feb 2026 19:19:12 +0800</pubDate><description><![CDATA[BottomNavigationView的menu代码Navigation代码fragment的界面自行设计。]]></description><category></category></item></channel></rss>