作者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)
1F:→ nvidia:ANR是什麽 08/16 12:20
2F:推 IgotYOU:Action not respond 避免程式hang太久 08/16 12:33