作者runescape1 (littledot)
看板AndroidDev
標題Re: [問題] 為何requery()被標為deprecated了?
時間Tue Aug 16 11:22:53 2011
※ 引述《GGGGGforever (五雞大俠)》之銘言:
: 今天上網想複習一下Cursor的requery()方法
: 沒想到requery()已經被標為deprecated了@@"
: API:
: http://developer.android.com/reference/android/database/Cursor.html#requery()
: requery()當初可是Cursor與ListView並用時很多人推薦使用的超方便方法呀
: 不過他deprecated的原因小弟看不大懂
: 請問有熟知SQLite的朋友能說明一下的嗎?
1.因為requery不會檢查這個cursor是否closed, 還是deactivated
如果是closed, requery就會跳出exception然後FC
只有deactivated, requery才會成功
這對於用Activity.startManagingCursor來說是一大困擾
2.因為requery會在UI thread被呼叫
如果你的資料量龐大, 時間過久就會ANR
為了避免ANR, 另開一個thread, 再用handler來更新UI
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.166.198.88
※ 編輯: runescape1 來自: 218.166.198.88 (08/16 11:50)
→ nvidia:ANR是什麼 08/16 12:20
推 IgotYOU:Action not respond 避免程式hang太久 08/16 12:33