2011-04-06 41 views
1

我得到的所有出現在Gmail客戶端的電子郵件:遊標是否有獨立的數據,或只是指向數據的指針?

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

有一個問題......有時,當Gmail客戶端試試,看看是否有新郵件到達,和I,M閱讀的同時,在光標上方,Gmail與「IndexOutOfBoundException」崩潰。這種情況一次發生一百次以上......在1%的時間裏,更爲可能。

第一個問題:我會嘗試將消息光標複製到一個新的光標,稱爲copyCursur。

我不知道,如果這個解決方案是正確的:例如,當我打電話

messages.moveToLast(); 
  • A.做它直接從閱讀 「內容:// gmail的-LS /會話/」 B.或消息是在「content:// gmail-ls/conversations /」中爭用的數據的副本itselt?

因爲如果A,也許我的解決方案colud獲勝。否則,如果B,我的解決方案肯定是錯誤的。

第二個問題:如何複製遊標? 是不是,如果我這樣做:

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

或以這種方式我只已經是copyMessages是一個「指針」的消息?

非常感謝!

+0

你能否抓住「IndexOutOfBoundException」異常。 – Vivek 2011-04-06 07:34:41

回答

1

這是一個指針。 如果您想迭代緩存的數據,請使用ContentQueryMap類。

相關問題