gpt4 book ai didi

Android ContentProvider/Loader 与加载到对象

转载 作者:搜寻专家 更新时间:2023-11-01 08:02:59 24 4
gpt4 key购买 nike

我有一个带有 SQLite 数据库的 Android 应用程序,其中有几个表反射(reflect)了几种类型的对象。在 ListView 中将数据呈现给用户之前,我现在和过去都将 SQLite 数据加载到 ArrayLists。几乎所有需要的数据都加载到对象中,将它们保存在内存中并检查以确保没有添加重复项。我在 Application 对象中共享这些对象,这样我就可以跨不同的 Activity 访问它们。

我想知道使用加载程序并为列表创建内容提供程序是否是更好的方法。我认为从长远来看,这会使代码更简单。加载器的优点是它在运行中并且在另一个线程上,对吗?我不太关心速度,因为我只有几行要加载,但对于加载器和内容提供者来说,这可能比我现在必须做的管理数据库和临时 ArrayList 更容易。

有人有什么建议吗?同样,速度不是一个大问题,但是否会推荐使用加载程序并且更简单?谢谢。

最佳答案

Loader 的真正优势在于它不会在查询运行时挂起您的 Activity。在 Activity 中运行查询是不行的;当您等待来自数据库的响应时,您正在阻塞 UI 线程。根据查询结果的大小(不仅仅是行数),这种挂起可能会给用户带来麻烦。

另一方面,加载程序在单独的线程上运行。

此外,它会自动为您提供一个 ContentObserver,以便您可以重新加载数据并在数据发生变化时查看。我不知道这是否会与您的缓存方案冲突。

关于Android ContentProvider/Loader 与加载到对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18392617/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com