自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(349)
  • 资源 (1)
  • 收藏
  • 关注

原创 LangChain 对话记忆完整教程

对话记忆(Conversation Memory)是 LangChain 中让大模型记住之前对话内容的能力。history_messages_key 指定历史占位符的变量名 “history”input_messages_key 指定输入参数的字段名 “input”session_id 会话标识,相同 ID 共享记忆 “user_001”第3轮 “我喜欢吃什么?” “我不知道你喜欢吃什么” “你喜欢吃披萨”第1轮 “我叫小明,我喜欢吃披萨” “你好小明!” “你没有告诉我你的名字” “你叫小明”

2026-04-28 18:27:00 30

原创 RAG 从零到一:让大模型读懂你的文档

paraphrase-multilingual-MiniLM-L12-v2 支持中文,速度快 ~500MB。create_stuff_documents_chain 将检索到的文档"填充"到提示词中。核心思想:让大模型在回答问题前,先从你的文档中检索相关信息,然后基于这些信息生成答案。chunk_overlap 块之间的重叠字符数 chunk_size 的 10-20%确保文档使用 UTF-8 编码,加载时指定 encoding=“utf-8”。chunk_size 每个块的最大字符数 300-1000。

2026-04-27 22:38:58 161

原创 LangChain + RAG + Agent + 多模态 完整实战教程

📄 RAG 检索增强生成(基于 PDF/TXT 文档问答)💡 获取 API Key:访问 阿里云百炼控制台 注册并创建。🚀 从零到一:LangChain 完整实战教程。· 🤖 Agent 智能代理(自动调用工具)· 🌐 Web 界面(Streamlit)✅ Streamlit Web 界面 完成。· 🎨 多模态生成(文生图、图生图)2.3 输出解析器(JSON 格式)1.1 安装 Python 依赖。✅ 输出解析器(JSON) 完成。✅ RAG 检索增强生成 完成。· 💬 对话记忆(多轮对话

2026-04-27 22:24:38 342

原创 Flutter 分页缓存实战:基于 Riverpod 的 SWR 策略实现

在移动应用开发中,分页加载和缓存策略是两个绕不开的核心问题。用户期望 App 启动时能立刻看到内容,同时又希望数据是最新的。本文将带你实现一套完整的「SWR(Stale-While-Revalidate)」分页缓存方案。将 paginated_notifier.dart 复制到你的 lib/core/ 目录。希望这套方案能帮助你快速构建优雅的分页缓存体验!· 第二次打开 → 立即显示缓存,后台静默更新。Step 3: 实现你的 Notifier。SWR 策略 有缓存先展示,后台静默更新。

2026-04-17 11:02:35 476

原创 Python 线程完全指南:从入门到实战

GIL(Global Interpreter Lock,全局解释器锁) 是 CPython(Python官方实现)中的一个互斥锁。有趣的事实:Jython(Java实现)和 IronPython(.NET实现)没有 GIL,但它们不是主流。Python 线程是 IO 密集型任务的好帮手,但别指望它帮你加速计算——那是多进程的活儿。threading IO密集型,中等并发 简单直观,共享内存 GIL限制,无法并行计算。· 线程 = 房子里的人(共享房子的资源,可以同时做不同的事)

2026-04-16 10:59:23 322

原创 Python 语法大全 + 实战详解

从基础语法开始,逐步深入到面向对象、异常处理、文件操作,再到实战项目,建议按照章节顺序学习并动手实践每个代码示例。range() 生成数字序列 list(range(5)) → [0,1,2,3,4]sum(), min(), max() 统计 sum([1,2,3]) → 6。int(), str(), float() 类型转换 int(“123”)sorted() 排序 sorted([3,1,2]) → [1,2,3]切片是Python的强大特性,适用于列表、元组、字符串。

2026-04-16 09:15:44 477

原创 Android 应用发布市场全攻略:从零到上架主流商店

完成一款 Android 应用的开发后,最后一步也是至关重要的一步,就是将它发布到各大应用商店,让用户下载使用。与 iOS 只有 App Store 一个渠道不同,Android 生态拥有众多应用商店——华为、小米、OPPO、vivo、应用宝、Google Play……每个平台都有自己的规则和要求。本文将为你系统梳理 Android 应用发布到主流市场的完整流程,包括准备工作、各平台特点、详细操作步骤,以及常见问题的应对策略。不同平台虽然细节有差异,但核心要求是一致的:应用稳定、内容合规、隐私透明。

2026-04-13 19:37:07 708

原创 iOS App 上架 App Store 完全指南:从零到一详细攻略

当你完成一款 iOS 应用的开发后,最后一步也是最重要的一步,就是将它发布到 App Store,让全球用户下载使用。如果你的 App 需要登录,请在这里提供账号密码。· 在弹出的对话框中,确认出口合规性(通常如果你的 App 没有使用加密或只是使用系统自带的 HTTPS,选“否”)。· 测试账号:如果你的 App 需要登录才能使用,必须提供一个有效的测试账号和密码,并在审核备注中写明登录步骤。· 注意:个人账号可以上架应用,功能与公司账号基本一致,只是在 App Store 显示的个人或团队名称不同。

2026-04-13 19:32:35 501

原创 SwiftUI 组件封装进阶之路:组合、泛型、状态驱动与主题化

进阶方向:当你需要完全自定义布局时(如瀑布流、弧形菜单),可以学习 Layout 协议;下面用 5 个层次展示从简单到复杂的演进,每个层次都配完整代码。层次1-2 小型项目、原型、重复出现的UI片段 标签、评分、开关按钮。层次5 大型项目、团队协作、设计系统 统一按钮库、主题切换。层次3 中型项目、需要灵活内容的组件 弹窗、卡片、菜单。层次4 需要丰富交互的组件 折叠面板、轮播图、下拉刷新。让调用方决定内部布局,实现高度复用(如弹窗、卡片)。企业级封装,包含主题、预设样式、组合能力。

2026-04-09 16:36:50 34

原创 SwiftUI布局完全指南:从入门到精通

这个教程涵盖了SwiftUI的主要布局功能,从基础的文本、图片、按钮,到复杂的布局容器和高级手势。3.3 按钮视图 (Views/BasicViews/ButtonViews.swift)3.2 图片视图 (Views/BasicViews/ImageViews.swift)3.4 输入视图 (Views/BasicViews/InputViews.swift)3.1 文本视图 (Views/BasicViews/TextViews.swift)从基础到高级,涵盖各种View组件的使用。

2026-04-09 15:58:00 168

原创 Flutter 分页列表页面实现指南

这套分页列表模式经过多个项目的验证,具备良好的复用性和可维护性。4 新建 UI 页面 添加 ScrollController 监听滚动,RefreshIndicator 下拉刷新,CustomScrollView 渲染列表。2 新建 XxxController 实现 init() / loadMore() / _fetch() 方法。在移动端开发中,分页列表是最常见的场景之一。💡 提示:使用 copyWith 方法可以方便地创建新状态实例,这是不可变对象的常见模式。

2026-04-02 09:59:37 192

原创 Flutter SSE 流式接收完全指南:从原理到实战

无论是 AI 对话的逐字输出、股票行情的实时更新,还是新闻推送的即时通知,Server-Sent Events(SSE)都提供了一种比 WebSocket 更轻量、更易实现的解决方案。与传统的请求-响应模式不同,SSE 会维持一个长连接,服务端可以持续不断地发送数据。我们将从 SSE 协议原理讲起,逐步深入到实战代码,并最终实现一个完整的 AI 流式对话应用。sse_processor 是一个功能强大的 SSE 处理库,特别适合处理 AI 流式响应等复杂场景。手写实现虽然灵活,但需要考虑各种边界情况。

2026-03-26 10:18:13 674

原创 Android SSE 流式接收:从手写到框架的进阶之路

在移动开发中,实时推送数据的需求越来越常见。无论是 AI 对话的流式输出,还是股票行情的实时更新,Server-Sent Events(SSE)都是比 WebSocket 更轻量的选择。通过本文的学习,我们从底层协议开始,手写实现了 SSE 客户端,深刻理解了数据流处理、协议解析等核心概念。本文将带你从零开始,先手写一个 SSE 客户端,理解底层原理,再使用官方框架简化开发,最终掌握生产级的 SSE 实现方案。在实际项目中,建议优先使用官方框架,但在学习阶段,不妨亲手实现一遍,这会让你的技术功底更加扎实。

2026-03-26 09:23:28 533

原创 Flutter MVVM 完整实战:网络请求、状态管理、分页加载一网打尽

我来提供一个完整的、可直接运行的 Flutter MVVM 实战项目,包含网络请求、错误处理、加载状态、列表展示等真实场景。lib/viewmodels/auth_viewmodel.dart - 展示登录场景。lib/services/http_client.dart - 封装Dio。lib/views/login_screen.dart - 登录界面。lib/views/post_screen.dart - 主界面。· 根据状态显示不同UI(加载/错误/内容)· 管理加载、成功、失败状态。

2026-03-24 23:34:02 458

原创 Android WorkManager 完整实战教程(含完整文件)

我将创建一个完整的 Android 应用示例,展示 WorkManager 的各种用法。项目结构依赖配置app/build.gradleApplication 类MyApplication.ktAndroidManifest.xmlWorker 实现类workers/DataSyncWorker.ktworkers/ImageUploadWorker.ktworkers/CacheCleanupWorker.ktworkers/NotificationWorker.ktR

2026-03-24 23:22:33 563

原创 Flutter 中打开网络图片的完整指南

Flutter 提供了灵活多样的图片加载方案,从基础的 Image.network 到功能强大的第三方库,开发者可以根据实际需求选择合适的方式。掌握这些技术要点,能够帮助我们构建出流畅、美观、高效的图片加载体验。在移动应用开发中,图片加载是最常见的需求之一。Flutter 作为跨平台开发框架,提供了多种方式来加载和显示网络图片。本文将全面总结 Flutter 中打开网络图片的各种方法、最佳实践以及常见问题的解决方案。频繁加载 cached_network_image 自动缓存,性能好。

2026-03-23 20:48:53 248

原创 Flutter 深潜:当动态 List 遇上 JSON 序列化,如何优雅解决?

动态类型的 JSON 序列化是 Flutter 开发中的一个经典难题,但通过合理的设计模式,我们可以优雅地解决它。核心思想是:明确类型边界,统一序列化接口,善用递归处理。根本原因:Dart 的 jsonEncode 函数只知道如何处理基础类型(String、int、bool、Map、List),当遇到自定义对象时,它不知道该如何处理。本文将深入探讨动态 List 的 JSON 序列化问题,并给出多种解决方案,帮助你在不同场景下做出最优选择。那些年,我们在 toJson 上踩过的坑,以及最终的破局之道。

2026-03-23 20:46:19 705

原创 Flutter iOS 调试利器:idevicesyslog 从入门到精通

虽然 Xcode 的 Console 或 macOS 的 Console.app 很方便,但在 Linux 环境下工作,或者当你需要自动化日志收集时,idevicesyslog 就会成为一个不可或缺的瑞士军刀。idevicesyslog 是 libimobiledevice 库中的一个命令行工具,它的作用非常简单直接:实时输出连接设备的系统日志(syslog)。对于 iOS 9 以上的设备,idevicesyslog 支持请求一个更完整的日志归档(logarchive),这对于分析历史问题很有帮助。

2026-03-20 16:38:36 510

原创 Flutter 异常捕获与处理:从入门到生产实践

本文将从 Flutter 的异常机制出发,系统地总结 Flutter 中的异常类型、捕获方式以及生产环境下的最佳实践。当 main() 函数执行完毕后,消息循环机制启动,会按照先进先出的顺序逐个执行微任务队列中的任务,然后处理事件队列。如果某个任务执行过程中发生异常且未被捕获,当前任务的后续代码不会执行,但不会影响其他任务的执行,程序也不会退出。我们需要根据不同的异常类型选择合适的捕获方式,在生产环境中建立完整的监控体系,并通过合理的架构设计从根本上减少异常的发生。

2026-03-20 10:14:25 572

原创 iOS vs Android 开发对照手册

这份手册旨在提供一个清晰、快速的对照参考,帮你定位两个平台中对应的概念和 API。· View系统 (命令式) / Compose (声明式)· UIKit (命令式) / SwiftUI (声明式)· iOS:Combine (原生) / RxSwift。· Android:Flow (原生) / RxJava。· Kotlin (现代) / Java (遗留)· Swift (现代) / ObjC (遗留)· iOS:Codable (原生)· iOS:通过具体服务请求。· iOS:检查授权状态。

2026-03-18 13:38:30 417

原创 Flutter 页面生命周期超全总结(附 addPostFrameCallback 详解)

本文涵盖了 Flutter 中 StatefulWidget 的生命周期、App 生命周期以及特殊的 addPostFrameCallback 回调,帮你彻底搞懂页面从创建到销毁的整个过程。挂断电话 paused → inactive → resumed。· addPostFrameCallback:成年(可以做事了)来电话 resumed → inactive → paused。页面渲染后操作 addPostFrameCallback。四、特殊回调:addPostFrameCallback。

2026-03-17 10:53:46 364

原创 iOS多线程编程从入门到实战:一份通俗易懂的Objective-C指南

这个实战项目涵盖了iOS/OSX开发中90%以上的多线程场景,每个示例都可以直接运行观察效果。建议你逐步运行并观察控制台输出,理解每种多线程技术的特点和适用场景。首先在Xcode中创建一个新的macOS Command Line Tool项目,选择Objective-C语言。示例6:NSOperation和NSOperationQueue。从简单到复杂,每个示例都可以直接在Xcode中运行并看到效果。四、高级篇:NSOperation。示例3:GCD队列和任务。示例2:线程同步和锁。五、实战篇:综合应用。

2026-03-16 13:45:05 323

原创 手把手教程:在 macOS 上为 iOS 真机编译 Ceres Solver (ARM64)

这是一篇为你准备的技术博客草稿。你可以直接复制使用,或者根据你的风格稍作调整。文章涵盖了从环境准备、工具链配置、源码修补到最终编译集成的全过程,重点突出了那些“坑”和解决方案。🚀 手把手教程:在 macOS 上为 iOS 真机编译 Ceres Solver (ARM64)Ceres Solver 是谷歌开源的著名非线性最小二乘优化库,广泛应用于 SLAM、视觉重建和机器人领域。然而,官方并没有直接提供 iOS 的预编译库。

2026-03-03 00:24:36 459

原创 Flutter 布局溢出完全指南:从红线警告到优雅解决

让 Flutter 的 overflow: TextOverflow.ellipsis 配合正确的布局约束来优雅地处理这个问题。在 Flutter 开发中,黄色的布局溢出警告(通常表现为红色条纹和错误信息)是开发者最常见的困扰之一。本文将全面梳理 Flutter 中各种布局溢出场景,分析根本原因,并提供系统的解决方案。记住:大多数布局溢出问题,都可以通过正确使用约束和 Flex 布局来解决。当你遇到溢出警告时,不要急于手动计算尺寸,而是要思考如何让 Flutter 的布局系统自动处理这些情况。

2026-02-27 10:46:25 389

原创 Flutter 布局避坑指南:Text 溢出的罪魁祸首竟然是它!

很多开发者都会遇到这样的情况:明明已经设置了 maxLines 和 overflow,但文本就是不换行,也不显示省略号,反而报出了溢出警告。在 Row 或 Column 中,如果某个子 Widget 的内容可能超出可用空间,必须用 Flexible 或 Expanded 包裹。文本溢出问题是 Flutter 初学者最常见的困扰之一,但理解了布局约束的本质后,问题就迎刃而解了。这样写出的代码不仅能够正确显示,还能自动适应不同语言、不同字体、不同屏幕尺寸,真正做到一次编写,到处运行。

2026-02-27 10:37:04 424

原创 CMake完全指南:从入门到精通

记住核心原则:目标为中心、接口明确、平台抽象。· CMake官方文档:https://cmake.org/documentation/· CMake社区:https://discourse.cmake.org/· 变量(Variable):存储路径、选项等信息。· 目标(Target):可执行文件、库文件等。· cmake-format:代码格式化。模板5:Modern CMake项目。· cmake-gui:图形界面配置。· cmake-lint:代码检查。· ccmake:终端图形界面。

2026-01-16 09:08:40 48852

原创 将原生 C++ 代码编译为 iOS Framework:完整指南

现在你的 C++ 代码已经变成了一个标准的 iOS Framework,可以像其他框架一样轻松集成到任何 iOS 项目中!FrameworkBridge.mm (Objective-C++ 实现)FrameworkBridge.h (Objective-C 头文件)· Framework 包含正确的架构 (arm64, x86_64)将原生 C++ 代码编译为 iOS Framework:完整指南。🎯 为什么要将 C++ 编译为 Framework?步骤 1:创建 Framework 项目。

2026-01-15 16:25:57 457

原创 如何优雅地在Android中集成第三方.so库并封装自定义JNI层

在Android开发中,我们经常会遇到需要集成第三方原生库(.so文件)的场景,同时为了更好地组织代码和提供统一的Java/Kotlin接口,我们还需要封装自己的JNI层。通过本文的介绍,我们了解了如何系统地集成第三方.so库并封装自己的JNI层。关键点包括:合理的项目结构设计、安全的资源管理、良好的错误处理机制以及全面的测试策略。· JNI(Java Native Interface): Java与C/C++交互的桥梁。如何优雅地在Android中集成第三方.so库并封装自定义JNI层。

2026-01-15 14:56:24 418

原创 动态库探秘:如何快速查看.so文件中的JNI方法

在Android开发或Linux系统编程中,动态链接库(.so文件)承载着核心的本地代码实现。推荐组合:日常使用 nm 快速查看,深度分析时结合 objdump 和 readelf。本文将以实战角度,介绍多种查看.so文件中方法的工具和技巧。场景:分析 libnative-lib.so 中的JNI方法。动态库探秘:如何快速查看.so文件中的JNI方法?· 功能最全面,可查看符号表、反汇编、段信息。二、实战:定位JNI方法的四种姿势。引言:为何需要分析.so文件?方法1:直接过滤法(最常用)

2026-01-15 14:54:19 581

原创 在Windows上编译OpenCV Android原生库全记录

最近在开发一个需要集成OpenCV的Android项目时,我发现传统的Android Studio集成方式存在一些限制:构建流程不透明、难以自定义模块、集成到CI/CD流程复杂。经过一番探索,我成功找到了一种纯命令行编译OpenCV Android库的方法,整个过程完全掌控,非常适合需要自定义构建或自动化集成的场景。本文将详细介绍我在Windows 11环境下,使用Git Bash、Android NDK、CMake和Ninja,从源码编译OpenCV 4.11.0 Android原生库的完整过程。

2026-01-09 16:41:45 758

原创 SwiftUI 状态管理完全指南:从 @State 到 @EnvironmentObject

本文将深入解析 @State、@Binding、@StateObject、@ObservedObject 和 @EnvironmentObject,帮助你做出正确的选择。记住:没有最好的工具,只有最合适的工具。@EnvironmentObject 是 SwiftUI 的依赖注入系统,用于在视图层级中向下传递共享数据,避免层层传递的繁琐。@State 用于管理视图内部的简单状态,适用于值类型(struct、enum、基本类型)。@Binding 创建父子视图间的双向连接,允许子视图修改父视图的状态。

2026-01-09 15:13:56 1036

原创 从零开始:在 Windows 上使用命令行编译 Android .so 动态库(NDK + CMake + Ninja)

本文将手把手教你如何在 Windows + Git Bash 环境下,仅用命令行工具,基于 Android NDK、CMake 和 Ninja,编译出适用于 Android 的 .so 动态库。🛠️ 从零开始:在 Windows 上使用命令行编译 Android .so 动态库(NDK + CMake + Ninja)A:Git Bash 的 make 在某些精简版中缺失,而 Ninja 单文件、无依赖、官方推荐。Android NDK 推荐使用 Ninja 作为构建后端(比 Make 更快、更可靠)。

2026-01-09 15:11:41 611

原创 Objective-C 核心语法深度解析:基本类型、集合类与代码块实战指南

这些是Objective-C编程中最核心和常用的部分,熟练掌握它们对于iOS/macOS开发至关重要。- Objective-C的布尔类型(YES/NO):^返回值类型(参数列表) { 实现 }:默认在栈上创建,使用copy可移动到堆。:可捕获外部变量,可作为参数传递。:回调函数、异步操作、集合操作等。t - 图形相关的浮点类型。- 有序集合,元素可重复。- 平台无关的整数类型。- 无序集合,元素唯一。- 基本类型的包装类。:使用__weak避免。

2025-12-29 09:42:53 591

原创 Android 插件化开发完全指南(Kotlin DSL/Gradle KTS 配置)

📦 插件清单配置 (plugin-app/src/main/AndroidManifest.xml)⚙️ Runtime 模块配置 (plugin-runtime/build.gradle.kts)🔧 Loader 模块配置 (plugin-loader/build.gradle.kts)📦 插件应用配置 (plugin-app/build.gradle.kts)🏗️ 宿主应用配置 (app/build.gradle.kts)🎯 Gradle KTS 配置插件化项目。📱 宿主 Activity

2025-12-23 00:03:26 1177

原创 Android 本地存储新选择:MMKV 完全指南与实战

今天,我要介绍的是由腾讯开源的 MMKV——一个真正意义上的高性能 key-value 存储框架。MMKV 是基于 mmap 内存映射的 key-value 组件,底层序列化/反序列化使用 protobuf 实现,性能高,稳定性强。SharedPreferences 的 MODE_MULTI_PROCESS 从 Android 7.0 开始已被废弃,而 MMKV 提供了真正的多进程数据同步。特别是在需要多进程数据共享的场景下,它几乎是无替代的完美解决方案。· ❌ 需要网络同步的数据(用数据库+网络层)

2025-12-22 23:55:55 672

原创 Android OpenGL ES 2.0 完整开发指南:从零到三维旋转立方体

这是一个完整的 Android OpenGL ES 2.0 示例项目,展示如何在 Android 平台上使用 Kotlin 和 OpenGL ES 2.0 渲染一个带有纹理贴图的 3D 旋转立方体。· 索引缓冲区(EBO): 存储绘制顺序,减少重复顶点。· 检查图片尺寸是否为2的幂次方(非必须,但推荐)· 顶点缓冲区(VBO): 存储顶点坐标数据。· 顶点坐标是否在 -1 到 1 范围内。· 纹理坐标缓冲区: 存储UV坐标。· MVP矩阵计算是否正确。· 添加备用纹理生成机制。· 索引顺序是否正确。

2025-12-20 11:06:03 466

原创 Kotlin vs Dart vs Swift:语法对比全解

协程/异步 ✅ 协程 ✅ async/await ✅ async/await。主平台 Android、JVM Flutter、Web iOS/macOS。互操作性 Java JavaScript Objective-C。空安全 ✅ 编译时 ✅ 健全空安全 ✅ 可选类型。· 服务端/通用 → Kotlin 或 Dart。语法简洁度 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐。函数式编程 ✅ 优秀 ✅ 良好 ✅ 良好。类型推断 ✅ 强大 ✅ 良好 ✅ 强大。扩展函数 ✅ 支持 ✅ 支持 ✅ 支持。

2025-12-18 22:38:39 487

原创 Flutter Packages 设计与实践:构建可维护的模块化应用

记住:一个好的 Package 就像一个好的 API 设计——它应该简单易用、功能明确、文档完善。最后的建议:在你发布第一个 Package 之前,先成为 Package 的使用者。阅读优秀 Package 的源码,理解它们的设计哲学,然后创造出你自己的优秀作品!“在 Flutter 的世界里,Packages 不仅是一种技术,更是一种哲学——它代表着模块化、复用性和社区协作的力量。Flutter Packages 不仅仅是代码复用的工具,更是构建健壮、可维护应用的基石。

2025-12-18 15:50:46 1355

原创 Flutter多品牌应用架构实战:从配置驱动到编译部署的完整解决方案

这样就完成了完整的Flutter多品牌应用架构!Flutter多品牌应用实战:完整源码文件。

2025-12-18 14:17:44 389

原创 Flutter定时任务全攻略:从基础到进阶的8种实现方式

在Flutter开发中,定时任务是常见的需求场景,如轮询请求、倒计时、延迟执行等。本文将全面介绍Flutter中实现定时任务的8种方法,并附上详细代码示例和最佳实践。选择合适的方式,并遵循最佳实践,可以创建出高效、稳定的定时功能。定时器在页面切换后仍运行 未处理页面生命周期 在deactivate中暂停,在activate中恢复。· 响应式UI:使用Stream.periodic + StreamBuilder。· 基础定时:使用Timer或Timer.periodic。· 复杂调度:使用cron插件。

2025-12-15 08:53:22 642

history.zip

android 开发

2019-07-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除