问题标签 [android-contentresolver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
443 浏览

android - Android:如何从 ContentResolver 查询中排除 Facebook 联系人

我正在使用此查询提取所有手机的联系人:

如果用户已经同步了他们的 Facebook 联系人,那么我会在此查询中获取这些联系人以及其他所有内容。但是,我已经通过异步 API 调用拉取用户的 Facebook 联系人,因此我想从该查询中排除 Facebook 联系人以避免重复。

有人可以指出我需要包含的 WHERE 子句(选择参数),这将允许我从该查询返回的内容中排除 Facebook 联系人吗?

谢谢!

编辑:或者至少只是一个可以从 ContentResolver 中选择的字段,它允许我手动过滤 Facebook 联系人?那也一样好。

0 投票
1 回答
1904 浏览

android - Android:数据库插入触发异常“递归调用getWritableDatabase”

每当异步任务尝试将数据插入 SQLite 数据库时,我都会遇到以下异常。

java.lang.IllegalStateException: 递归调用 getWritableDatabase

数据由运行单独的异步任务以下载、转换并最终插入数据的服务生成。我不确定我传递的上下文对象是否正确。请注意我添加到源代码中的注释。下面我添加了相关的类和函数。如果您需要更多信息,请发表评论。

...

...

...

...

当我在调试模式下运行应用程序时,我最终进入了方法块ThreadPoolExecutor中的框架类。finallyrunWorker()


编辑:
这是完整的异常堆栈跟踪。

我没有提到CustomSQLiteOpenHelper.insertTestData()调用getWritableDatabase(). 我将方法称为insertTestData(). CustomSQLiteOpenHelper.onCreate()每当应用程序尚未创建数据库时,都会发生崩溃。总而言之,hawaii.five-0 是完全正确的!

0 投票
1 回答
209 浏览

android - android中的sql查询

我正在尝试从具有 data1 字段 euqal 的数据库中获取来自字符串数组的值的行。这就是我想要做的......但它给出了一个sqliteexception。

c 是光标。id 是字符串数组,其中包含应与数据库的 DATA1 字段中的字符串匹配的字符串。还有其他方法吗?也许使用'IN'?logcat 异常是:

07-03 17:42:49.118 391 391 E DatabaseUtils:android.database.sqlite.SQLiteException:绑定或列索引超出范围:句柄 0x584c30

0 投票
1 回答
1434 浏览

android - 使用内容提供者将一个数据库的内容复制到另一个数据库

我正在尝试使用方法将数据库内容从我的免费应用程序复制到我的付费应用程序,但在最后一步我很迷茫:

检查提供者的存在并将数据加载到您的付费应用程序中。

我可以像这样检查提供者的存在:

但我不知道如何进行复制?

我尝试获得这样的 ContentResolver:

我还没有能够对此进行测试,但即使它有效,我也会迷失下一步。我如何将数据从一个数据库中获取到另一个数据库中?

0 投票
1 回答
298 浏览

android - 如何重置 PeriodicSync

有没有办法重置 PeriodicSync 的周期?

我的意思是,如果周期是 10 分钟,自上次同步以来已经过去了 7 分钟,请重置周期,以便下一次同步将在 10 分钟内再次,而不是 3 分钟。

ContentResolver 对此没有任何方法。我试图:

  • 在现有的 PeriodicSync 上调用 ContentResolver.addPeriodicSync()。如 javadocs 中所述,期间会更新,但不会重置。
  • 停止并启动 PeriodicSync。在这种情况下,重新启动时会触发同步,这是我不想要的。

谢谢你。

0 投票
3 回答
5874 浏览

android - 在 Android 中使用 Content Provider 批量删除项目

我正在尝试批量删除表中的某些项目。

但是我不断收到以下错误

java.lang.IllegalArgumentException:绑定参数过多。提供了 3 个参数,但该语句需要 1 个参数。

0 投票
2 回答
4340 浏览

android - 与普通 SQLite 存储相比,使用 ContentProvider 有什么优势?

我想在多个应用程序之间共享数据,而不是使用 ContentResolver->ContentProvider 机制,我可以定义一个客户端库来与执行 SQLite DB 操作的进程对话吗?

ContentProvider 在这里带来了哪些我们无法通过 Process 公开数据来实现的功能?

0 投票
2 回答
2588 浏览

android - 如何 JUnit 测试 ContentResolver.notifyChange

我正在为 a 编写测试ContentProvider,在insert我通知更改时getContext().getContentResolver().notifyChange(mUri, null);

我的测试类扩展了ProviderTestCase2。我创建了以下模拟 ContentObserver 类:

这是测试用例:

似乎onChange从未调用过,我也尝试ContentObserverMock co = new ContentObserverMock(new Handler());过相同的结果。

我在这里做错了什么?

0 投票
2 回答
6269 浏览

android - Android:未处理带有选择 WHERE 子句的 SQLite 查询

我试图通过在ContentResolver的查询的选择字符串中定义 SQL WHERE子句来限制数据库结果。

...

数据库列定义如下...

...

我不是特别确定我可以检查游标中发送的查询。如果是这样,它不包含我发送的 WHERE 子句:

以下是选择字符串的示例:

问题:

  1. WHERE 子句在语法上是否正确?
  2. 我需要撇号吗?
  3. 我是否被迫在查询中一次使用两个参数(selection、selectionArgs)?
  4. 我在哪里可以调试整个查询?

编辑:

这是ContentProvider的query()方法...

...显然,正如biegleux猜测的那样,我忘了传递参数。嗬!
这是数据库方法的当前实现...

您是否建议我将方法签名更改为以下以传递所有参数?我不是以这种方式暴露了大部分数据库接口吗?

0 投票
4 回答
4150 浏览

android - 使用 ContentProvider 插入多个表

我正在实现一个 PRIVATE ContentProvider,它的关系表很少(一对多,多对多)。在我当前的实现中,所有表都可以通过 URI 访问。如何简化界面,使 URI 不必访问内部“直通”表?

比如我有一个POSTS表,每个POST通过TAGGINGS表有很多TAGS。我只想与 POSTS URI 交互并在ContentProvider.

因为query它很容易返回一个带有连接表的游标,但是我该怎么做insert呢?bulkInsert我应该调查什么?