跳转到内容
Go back

安卓开发-2025-4-27

Edit page

安卓开发-2025-4-27

限定域问题

  1. 保存数据库后,页面跳转总是出现问题,现在通过谷歌不断添加 log,发现问题。

bookshelffragment 作用域限定很必要。


uri contentprovider 单向问题

  1. 经典的问题,当我在 github 中找类似的小说阅读器时,总会让我设置权限云云。这是因为外部应用提供的 uri,无法直接控制对方的 ContentProvider 是否可用或 URI 是否一直有效。

因此在快看阅读中,我发现他是通过复制该文件到应用中解决的。

而 github 开源软件是通过强制设定权限实现的。

这里我采用快看阅读的方式解决。复制到本地如图所示:

image-20250427143152410


Android Fragment 生命周期的重要组成部分

因为之前修改代码导致代码不全,以至于导航栏等出现错误。

它们不是可选的,而是由 Android 系统在 Fragment 的不同阶段自动调用的回调方法。

虽然您的 Fragment 可能在不实现所有这些方法的情况下也能运行,但它们对于 Fragment 的正确初始化、状态管理和资源控制是必不可少的:

您代码中使用的 onCreateViewonDestroyView 是 Fragment 生命周期中必须实现的(至少 onCreateView 是构建 UI 所必需的)。而像 onResumeonStart 等方法,即使您没有在里面写任何代码,系统也会调用它们。它们的存在是 Fragment 与 Android 系统正常交互的基础。

特别是对于您使用 ViewModel 和 LiveData 的情况,ViewModel 的 LiveData 观察者通常会绑定到 Fragment 的生命周期(例如通过 getViewLifecycleOwner())。这些观察者依赖于 onStartonResume 等生命周期回调来知道何时应该变为活跃状态并接收数据更新。

所以,简而言之,这些生命周期方法是 Fragment 框架的一部分,是必要的。我们在调试时在 onResume 中添加日志是为了在 Fragment 处于最活跃的状态时检查特定的数据,但这并不意味着 onResume 本身是可以删除的(即使里面没有您的代码)。

希望这个解释能帮助您理解 Fragment 生命周期回调的重要性。


Edit page
Share this post on:

Previous Post
安卓开发 - 四大组件
Next Post
安卓开发流程-2025-4-26