android - 使用 Content Provider 的插入、删除和更新的最佳方法是什么?

标签 android android-asynctask android-contentprovider crud loader

我围绕这个主题思考了很长一段时间。我在 Android 方面没有太多经验,我正在尝试使用我能做到的最佳方法对所有内容进行编码。

我成功地创建了一个 Content Provider 来包装我的 SQLite 和一些加载器来查询数据。它工作正常,但我在决定如何在主线程之外插入、删除和更新时遇到了一些问题

我实现了各种 AsyncTasks 来管理这些操作,结果看起来不错。

但这是正确的方法还是我遗漏了什么?

有没有我从未听说过的特殊类或模式?

如果有人能指出我的方向,那就太好了。 谢谢

最佳答案

您可以使用 AsyncQueryHandler。与您使用 AsyncTask 所做的几乎完全一样,但所有繁重的工作都已经处理完毕。

假设您的 Content Provider 一切正常,基本上您真正需要做的就是(更新):

AsyncQueryHandler handler = new AsyncQueryHandler(ctx.getContentResolver());

final ContentValues cv = new ContentValues();
values.put(column, data);

handler.startUpdate(-1, null, uriOfDatabase, cv, selection, selectionArgs);

参见文档 here

关于android - 使用 Content Provider 的插入、删除和更新的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30657438/

相关文章:

C# - 为高端服务器使用异步

android - ContentProvider 何时真正创建?

android - 利用 ORMLite 将 Android Cursor 映射到 POJO?

安卓 : How to use custom view in Widget [Remote Views]

Android:AsyncTask - 似乎没有异步运行

android - 从 maps.googleapis.com 获取 JSON 数据时出错

android - Recyclerview + 内容提供者 + CursorLoader

java - 如何在android中获取蓝牙耳机设备的信息(特别是耳机设备名称)

使用 reset() 和 release() 调用时的 Android MediaPlayer 错误

android - 使用图标在android中启动网页的最简单方法