gpt4 book ai didi

android - CursorLoader 和 AsyncTaskLoader 的区别

转载 作者:IT王子 更新时间:2023-10-28 23:36:37 26 4
gpt4 key购买 nike

我为什么要使用 AsyncTaskLoader,什么时候应该使用 CursorLoader,反之亦然?

在官方page ,显示了 App-listing 示例,它使用 AsyncTaskLoader 而不是 CursorLoader。

这两者的优缺点是什么?我在某处读到了关于 CursorLoader 不关心内容更改(在 sqlite 中)。

谢谢!

最佳答案

AsyncTaskLoader 是一个抽象的 Loader,它提供了一个 AsyncTask 来完成工作。因此,您通常扩展 AsyncTaskLoader 以创建您自己的自定义加载器。使用 AsyncTask 和使用 AsyncTaskloader 的主要区别在于配置更改(例如方向change) 不会影响 AsyncTaskLoader 及其进程,因为 AsyncTaskLoader 有自己的生命周期;而配置更改会对 AsyncTask 产生不利影响,因为它连接到主机 Activity 的生命周期。

CursorLoader 是一个查询 ContentResolver 并返回一个 Cursor 的加载器。该类以标准的方式实现了 Loader 协议(protocol),用于查询游标。它只不过是一个 AsyncTaskLoader。

简而言之,当您必须通过扩展 AsyncTaskLoader where D="anything_you_want_to_load"来创建自定义加载器时,您可以使用 AsyncTaskLoader。当你必须实现一个加载 Cursor 的加载器时,你会使用 CursorLoader(通常在你从数据库加载数据时使用)。

关于android - CursorLoader 和 AsyncTaskLoader 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28710633/

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