Я получаю все электронные письма, присутствующие в клиенте 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% случаев, больше.
Первый вопрос: Я попытаюсь скопировать сообщения Курсор в новый Курсор, называемый copyCursur.
Я не знаю, правильно ли это решение: например, когда я звоню
messages.moveToLast();
A.он читает непосредственно из "content: // gmail-ls / разговор /"
B.или messages - это копия данных, содержащихся в "content: // gmail-ls /alks / /"?
, потому что, если A, возможно, мое решение будет выиграно.В противном случае, если B, мое решение, безусловно, неверно.
Второй вопрос : как дублировать курсор?Правильно ли, если я сделаю:
Cursor copyMessages = new Cursor();
copyMessages = messages;
или, таким образом, у меня есть только то, что copyMessages является «указателем» на сообщения?
Большое спасибо!