【发布时间】: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