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

What is the best way to use the insert, delete and update from an Content Provider?

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

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

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

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

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

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

您可以使用 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