【问题标题】:Does Cursor has standalone data or it is only a pointer to the data?Cursor 有独立的数据还是只是指向数据的指针?
【发布时间】:2011-04-06 06:40:22
【问题描述】:

我收到了 Gmail 客户端中的所有电子邮件:

final Cursor messages = getContentResolver().query(
          Uri.parse("content://gmail-ls/conversations/" + mailAddress + "/"
                     + String.valueOf(conversationId) + "/messages"), null, null, null,
                     null);

有一个问题...有时,当 Gmail 客户端尝试查看是否有新电子邮件到达时,我正在阅读上面的光标,Gmail 崩溃并出现“IndexOutOfBoundException”。这种情况发生了一百多次……大约只有 1% 的时间。

第一个问题:我会尝试将消息 Cursor 复制到一个新的 Cursor 中,称为 copyCursur。

我不知道这个解决方案是否正确:例如,当我打电话时

messages.moveToLast();
  • A.它是直接从“content://gmail-ls/conversations/”读取的吗?

  • B.或者消息是“content://gmail-ls/conversations/”中包含的数据的副本?

因为如果 A,也许我的解决方案会获胜。否则,如果B,我的解决方案肯定是错误的。

第二个问题:如何复制光标? 对吗,如果我这样做:

Cursor copyMessages = new Cursor();
copyMessages = messages;

或者以这种方式我只有 copyMessages 是指向消息的“指针”?

非常感谢!

【问题讨论】:

  • 你能捕捉到“IndexOutOfBoundException”异常吗?

标签: java android gmail cursor duplicates


【解决方案1】:

这是一个指针。 如果要遍历缓存数据,请使用 ContentQueryMap 类。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-24
    • 2012-08-12
    • 1970-01-01
    • 2010-11-25
    • 1970-01-01
    • 2013-05-09
    相关资源
    最近更新 更多