
jetpack
文章平均质量分 88
Android jetpack
消失的旧时光-1943
来自苏州的程序员:
pmp 认证/Scrum Master 认证/ 腾讯TRTC认证 。
喜欢爬山,喜欢编码,喜欢物联网,喜欢做一些有意义的事。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
WorkManager vs Flow 适用场景分析
需要保证任务最终执行任务需要在应用不可见时执行需要系统级约束条件周期性任务应用被杀死后仍需执行的任务实时数据流处理UI 状态管理用户交互响应数据处理管道需要取消和重新订阅的场景在同一个项目中,WorkManager 和 Flow 可以结合使用WorkManager 负责后台任务调度Flow 负责实时数据流和 UI 状态管理根据具体需求选择最合适的方案这样选择可以确保应用的稳定性和用户体验!原创 2025-07-26 17:43:54 · 748 阅读 · 0 评论 -
WorkManager 替代 Service 详解
Android后台任务管理从Service迁移到WorkManager的实践总结 传统Service存在诸多局限性:手动处理后台任务、无法保证执行、需应对系统限制(如Doze模式/电池优化)、任务丢失风险高。WorkManager则提供了更优解决方案:自动处理系统限制、支持任务约束条件(网络/充电状态)、内置重试机制、保证任务最终执行。 迁移策略包括:1)识别Service类型(后台/前台/IntentService)2)创建对应Worker类 3)替换启动方式。实际案例展示文件下载和数据同步任务的迁移过程原创 2025-07-26 17:30:15 · 570 阅读 · 0 评论 -
Android Jetpack 组件库 ->WorkManager
WorkManager是Android官方推荐的后台任务调度框架,解决了传统方式手动管理后台任务的诸多问题。它通过声明式任务调度,自动处理系统限制(如Doze模式、电池优化),保证任务最终执行,并支持约束条件、自动重试和链式任务。核心组件包括WorkManager(调度器)、WorkRequest(任务请求)、Worker(执行者)和WorkInfo(任务状态)。WorkManager支持一次性任务、周期性任务和链式任务,开发者可通过设置约束条件、输入输出数据等实现灵活控制。相比传统方案,WorkManag原创 2025-07-26 17:26:45 · 961 阅读 · 0 评论 -
Android Jetpack 组件库 ->Jetpack Navigation (下)
传统导航的问题:kotlinApply// 传统方式 - 手动管理 Fragment) {// 手动添加 Fragment.commit()// 手动处理导航逻辑.commit()代码重复且容易出错难以管理返回栈参数传递不安全难以处理深层链接测试困难Jetpack Navigation 组件极大简化了 Android 应用的导航开发,提升了代码的可维护性和安全性。原创 2025-07-26 16:21:32 · 995 阅读 · 0 评论 -
实现Service和UI通信,并且能够手动回收的解决方案——共享ViewModel
摘要:本文介绍了一个完整的Android共享ViewModel实现方案,用于Service与Activity间的数据通信。通过创建共享ViewModel、ViewModelStoreOwner管理器,并在Application中统一管理生命周期,实现了:1) Service向多个Activity发送数据;2) 响应式LiveData通信;3) 手动/自动内存回收机制;4) 防止内存泄漏。方案包含ViewModel创建、数据更新、状态观察、UI绑定等完整实现代码,适用于需要持久化数据状态或服务-UI通信的场景原创 2025-07-12 15:30:47 · 772 阅读 · 0 评论 -
Android Jetpack 组件库 ->Jetpack Navigation (上)
Jetpack Navigation 通过声明式导航图类型安全传参和深度 UI 集成,显著简化了复杂导航逻辑的开发,尤其适合单 Activity 架构。其可视化工具和标准化 API 降低了维护成本,是构建现代 Android 应用的首选导航方案。Jetpack Navigation 官方文档。原创 2025-06-12 15:07:36 · 777 阅读 · 0 评论 -
Jetpack LiveData 深度解析
LiveData是Android架构组件中的核心类,具有生命周期感知能力,能自动管理UI数据更新。其优势包括:自动处理观察者生命周期以避免内存泄漏,在配置更改时保持数据,保证UI一致性。基本用法包括创建MutableLiveData对象,通过ViewModel暴露只读LiveData,并在Fragment中观察数据变化。进阶功能支持数据转换、协程集成和事件处理等。测试时可用InstantTaskExecutorRule或自定义TestObserver。最佳实践建议:ViewModel中只暴露LiveData原创 2025-06-12 14:55:46 · 984 阅读 · 0 评论 -
Kotlin 协程与 ViewModel 的完美结合
Kotlin 协程与 ViewModel 的结合为 Android 开发提供了强大的异步处理能力:使用确保协程生命周期与 ViewModel 一致结合StateFlowSharedFlow实现响应式 UI遵循单一职责原则,分离业务逻辑采用结构化并发简化错误处理和资源管理掌握这些技术将使你能够构建更加健壮、高效且易于维护的 Android 应用程序。原创 2025-06-12 13:17:34 · 843 阅读 · 0 评论 -
Jetpack 架构组件 -> ViewModel
Android ViewModel是Jetpack的核心组件,用于以生命周期感知的方式管理UI数据。它能解决数据持久化(屏幕旋转时保留数据)、防止内存泄漏、实现UI与数据分离等痛点。使用时需先添加依赖,创建继承ViewModel的类,然后在Activity/Fragment中通过ViewModelProvider获取实例。关键特性包括:比Activity更长的生命周期、配合LiveData使用、支持参数初始化、Fragment间数据共享。最佳实践包括不持有Context、保持轻量化、结合Repository原创 2025-06-12 12:56:18 · 1017 阅读 · 0 评论 -
Android lifecycle的使用
是属于Android(官方开发工具包)—— Architecture(架构组件)中的一员。【官方介绍】构建生命周期感知型组件,这些组件可以根据 Activity 或的当前生命周期状态调整行为。其实就是实现生命周期监听,做些逻辑。原创 2024-01-14 23:24:53 · 1366 阅读 · 0 评论 -
databinding的基础和高阶使用
我都不想读概念,就一句话,数据源跟UI组件绑定。为什么要数据源跟ui绑定呢,还不是想开发更简单么。我们需要先监听数据的变化, 然后再将变化后的数据同步更新到UI上,这样的步骤我们一直在重复,这样的重复性代码我们写了一次又一次。而DataBinding就是为了解决这个问题而存在的,我们只需要将数据绑定到UI元素上,更新数据时UI就会跟着改变,反之亦然,大大节省了我们的代码。这个我们后续的博客里面会分享,这里涉及到架构的思想就先不细讲。带一句,参照前端的思想。原创 2024-01-06 11:43:52 · 1530 阅读 · 0 评论