查詢數(shù)據(jù)會(huì)比較耗時(shí),所以我們想把查詢數(shù)據(jù)放在一個(gè)異步任務(wù)中,查詢結(jié)果獲得Cursor,然后在onPostExecute (Cursor result)方法中設(shè)置Adapter,我們可能會(huì)想到使用Activity的managedQuery來(lái)生成Cursor,這樣Cursor就會(huì)與Acitivity的生命周期一致了,多么完美的解決方法!然而事實(shí)上managedQuery也有很大的局限性,managedQuery生成的Cursor必須確保不會(huì)被替換,因?yàn)榭赡芎芏喑绦蚴聦?shí)上查詢條件都是不確定的,因此我們經(jīng)常會(huì)用新查詢的Cursor來(lái)替換掉原先的Cursor。因此這種方法適用范圍也是很小。
我們不能直接將Cursor關(guān)閉掉,但是注意,CursorAdapter在Acivity結(jié)束時(shí)并沒(méi)有自動(dòng)的將Cursor關(guān)閉掉,因此,你需要在onDestroy函數(shù)中,手動(dòng)關(guān)閉。
如果沒(méi)有在Adapter中用到Cursor,可以手動(dòng)關(guān)閉Cursor。
新聞熱點(diǎn)
疑難解答
圖片精選