程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> sqlite-cursorwindow數據庫並發讀寫

sqlite-cursorwindow數據庫並發讀寫

編輯:編程綜合問答
cursorwindow數據庫並發讀寫

現在有一個listview,綁定一個adapter,在adapter裡根據position,用cursor去獲取數據庫中一個表TB的數據,假設表中有200行數據。屏幕可以顯示10行listview的item,現在滑到了list底部,這個時候還有一個按鈕,按下的時候開啟一個新線程1,在這個新線程裡刪掉了表TB最末尾20行數據,
於是在線程1裡用Message傳一個消息,
讓UI主線程裡的handler去更換cursor,調adapter的notifydatasetchanged(),更新listview,

那麼問題來了,如果在線程1裡,刪掉數據後,傳遞消息前,我向上滑了一下listview
那麼這個時候會調用adapter的getview,position為200-10=190,調用cursor的movetoposition(190),然後getString();

此時,cursorwindow裡數據只有0-179條數據,但我卻請求了第190條數據,會引發一個cursorwindow的異常,大概是can not get row 190 in a cursor window of 180 rows.
要怎麼避免這個異常,或者怎麼做到及時更新我的cursor或cursorwindow呢?

最佳回答:


如果游標方式顯示listview,那就不能增刪數據,如果有增刪數據,那就把數據查出來,放到list或者map中,再通過adapter進行顯示。

u011453773
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved