- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
有几个关于如何实现自定义 AsyncTaskLoader 的教程,但我发现没有一个讨论如何处理数据缓存 - 在所有这些教程中,数据都只是加载和传送。
您能否给我一些提示,说明如何实现自定义 AsyncTaskLoader,它会立即返回数据的缓存版本,但同时请求更新数据并在数据到达时立即提供更新版本?这甚至可以通过加载器实现,还是我必须使用另一种机制?
背景:我有一个 IntentService,它接受数据加载请求并在广播中传送结果。我有一个 UI (ListView),它应该显示来自 ArrayAdapter 或 CrusorAdapter 的数据。我需要一些“缓存”层来保持最新已知版本的数据立即显示,但在新数据到达时立即发布更新并重新显示它们。
虽然这可以通过使用哑 SQLite 数据库作为即时版本并使用广播接收器来更新新数据来完成,但我更喜欢一些可以使这种“backgorund”数据加载机制透明的东西,比如 Loader 派生类恕我直言.
最佳答案
是的,AsycnTask
是执行此操作的最佳方式。您要做的就是在 AsyncTask
的 onPostExecute()
上写入您的缓存。这可以通过创建比较数据时间的时间戳来完成,如果有新时间,则使用该数据。否则,您将不得不比较所有数据,这可能会占用宝贵的时间和资源,因此这取决于您拥有多少数据。
这是一个可能有帮助的链接:
http://developer.android.com/training/efficient-downloads/redundant_redundant.html
关于android - 带缓存的自定义 AsyncTaskLoader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12055299/
我正在尝试创建一个将搜索结果加载到 fragment 列表中的搜索函数。问题是搜索向 API 发出了两个请求:一个针对类型 A,一个针对类型 B。 我的实现方式是创建一个包含两个 fragment 的
我在加载器方面遇到了一些问题,但我不明白我做错了什么。这是初始化和启动 Loader 的 fragment import android.os.Bundle; import android.suppo
这似乎是一个愚蠢的问题,但我无法理解 AsynctaskLoader 的状态。 我已经多次阅读文档以及网络上的其他教程。但是,我仍然无法理解Asynctask 何时处于Reset 状态 看看从官方文档
有几个关于如何实现自定义 AsyncTaskLoader 的教程,但我发现没有一个讨论如何处理数据缓存 - 在所有这些教程中,数据都只是加载和传送。 您能否给我一些提示,说明如何实现自定义 Async
我不明白AsyncTaskLoader中的所有函数是做什么的,比如onCancelLoad()和onForceLoad()。所有函数及其调用顺序均未正确记录。 假设我想在后台下载一个文件并在需要时取消
在我最近的一个 SO 问题中,有人建议我使用 Loader 作为我的解决方案。所以在这里我试图了解如何实现一个简单的 AsyncTaskLoader 这是我想出的: public class Scra
我有一个 Activity 实现了所有这些代码所在的 fragment 。由于代码是 secret 的,因此最好通过示例对此进行解释。这个例子反射(reflect)了正在尝试做的事情以及我通过测试观察
我需要做出设计决定。 从我在 android 开发者网站上读到的内容来看,我想我想实现一个服务,它启动一个 AsyncTaskLoader 以在后台从操作系统进程加载数据。 在 android 开发人
我想使用 Compatibility Package 在我的项目中实现 AsyncTaskLoader,所以我按照 Android Docs 中的 Loader 手册进行操作。 问题是加载器什么都不做
好吧,我很难理解我的应用程序出了什么问题。所以我有带有这样的选项卡的 ViewPager: 适配器.java public class CustomPagerAdapter extends Fragm
我正在尝试编译示例: http://developer.android.com/reference/android/content/AsyncTaskLoader.html 在onCreateLoad
在 onCreate() 中初始化 Loader 并在按下按钮时重新启动 Loader 的简单代码。关于 android 文档 getLoaderManager().restartLoader() 应
我使用的是 v13 支持库,支持取消所需的所有函数(例如 isLoadInBackgroundCanceled 和 cancelLoadInBackground 都完全缺失。 最佳答案 已回答 her
我有一个简单的 fragment ,试图在其中实现 AsyncTaskLoader。但是我遇到了一个编译时错误: 错误:类型不兼容必需的:加载器成立:装载无人机 错误在 onCreateLoader
我正在使用这个启动一个 AsyncTaskLoader: getLoaderManager().initLoader(0, null, this); 我想我可以用它来判断它是否正在运行: Boolea
谁能告诉我 AsyncTaskLoader 和 AsyncQueryHandler 之间的区别? 我想在我的应用程序中使用 AsynTaskLoader。我的应用程序中现有的是 AsyncQueryH
我想为我的自定义数据源实现 AsyncTaskLoader: public class DataSource { public interface DataSourceObserver {
我的 AsyncTaskLoader 有几个问题,不确定它们是否相关,因为它们都是在尝试重新启动加载程序时发生的。在我的应用程序中,我有 3 个自定义 CursorAdapter 实例,由 1 个单例
他们到处告诉我们应该使用 ASyncTaskLoaders,因为他们非常擅长不阻塞 UI 线程。现在可以使用 Volley。 我想我们不能同时使用它们,因为 Volley 自己做背景。你怎么看?哪个更
我试图了解 AsyncTaskLoaders 的一些细节.这对其他人来说可能是显而易见的,但我找不到一个明确的示例或定义来演示和解释当您覆盖 deliverResult() 时会发生什么情况。方法。实
我是一名优秀的程序员,十分优秀!