IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:Lifecycle

共 2 篇相关文章

IT 累计浏览 4,847

启动Activity的流程(Launcher中点击图标启动)

这篇讲的是Android开发中最基础也最关键的一环:Activity是如何被启动的。作者没有泛泛而谈,而是聚焦于最常见的“Launcher桌面点击图标”这一场景,通过一个包含两个Activity(A和B)的完整案例,带你深入源码,剖析背后完整的调用流程。 文章的核心价值在于清晰的对比和串联。作者首先点明Activity启动的三种常见方式(桌面点击、代码调用、命令am start),并强调它们的底层处理逻辑是相通的。理解了其中一种,就能举一反三。 为了让你彻底看懂,文章提供了详实的“弹药”:从Activity A和B的具体Java代码、对应的XML布局,到清单文件中至关重要的`intent-filter`配置(特别是`MAIN`和`LAUNCHER`这两个标签),一应俱全。在案例中,点击A中的按钮跳转到B时,日志会明确显示出Activity生命周期的切换顺序——先执行A的`onPause`,然后才是B的`onCreate`和`onResume`,这个过程是理解Activity任务栈管理的关键。 对于想从“会用”进阶到“理解原理”的Android开发者来说,这是一次非常扎实的源码梳理。它不仅告诉你流程是怎样的,更通过可运行的案例让你亲手验证这个过程,将理论和实践紧密结合起来。

IT 累计浏览 3,323

Android动画背景图自动播放的实现

在Android开发中,为网络图片加载添加loading动画很常见,但让动画自动播放却是个小麻烦。这篇文章就专门解决这个具体痛点。 作者指出,问题根因在于 `AnimationDrawable` 的 `start()` 方法不能直接写在 `onResume` 等生命周期回调里,否则动画不会自动启动。为了解决这个问题,文章详细介绍了三种经过验证的实现技巧:通过 `Runnable` 在视图挂载后启动、使用 `AsyncTask` 在后台线程触发,以及利用 `ViewTreeObserver` 的 `OnPreDrawListener` 在视图绘制前启动。每种方法都附带了清晰的代码示例。 文章还对比了网上流传的另一种利用 `onWindowFocusChanged` 的方法,并指出了其依赖焦点变化的局限性。整体来看,这是一篇聚焦于特定技术问题的实用指南,为开发者提供了多种可靠的解决方案。