9

CursorAdapter有3個構造函數。讓我們看看指南和參考。CursorAdapter有什麼我可以使用的?

1)的CursorAdapter(上下文上下文中,光標C)

此構造已被棄用。不鼓勵使用此選項,因爲它導致在應用程序的UI 線程上執行光標查詢,因此可能導致響應性較差,甚至導致應用程序不響應 響應錯誤。作爲替代方法,使用LoaderManager和一個 CursorLoader。

2)的CursorAdapter(上下文上下文中,光標C,布爾autoRequery)

構造允許通過自動重新查詢控制。 建議您使用 您不使用此,而是使用CursorAdapter(Context,Cursor,int)。

3)的CursorAdapter(上下文上下文中,光標C,整數標誌)

推薦構造。

flags用於確定適配器行爲的標誌;可以是FLAG_AUTO_REQUERY和 FLAG_REGISTER_CONTENT_OBSERVER的任何組合。

FLAG_AUTO_REQUERY 此常數已被棄用。該選項不鼓勵使用 ,因爲它導致在 應用程序的UI線程上執行光標查詢,因此可能導致響應性不佳,甚至導致應用程序無響應錯誤。作爲替代方法,使用帶有CursorLoader的LoaderManager。

FLAG_REGISTER_CONTENT_OBSERVER。 當使用帶CursorLoader的CursorAdapter時,不需要此標誌。

的CursorAdapter(上下文上下文中,光標C,INT標誌)是推薦的構造,但可能的標記有2,一個已過時,使用具有CursorLoader一個CursorAdapter當其它不需要。如果我用一個CursorAdapter和一個CursorLoader,我必須使用這個構造函數並將零作爲標誌傳遞。在這種情況下,構造函數與#1相同嗎?

回答

6

通過使用#1,它將適配器默認爲自動重新查詢。這與#3不同,因爲您可以指定是否希望自動重新查詢(根據文檔,您不應該這樣做)。因此,如果您通過#3構造函數0,則#1和#3不會相同。

1

CursorAdapter是一個抽象類,因此無法實例化。

另外,請記住,第三個構造函數只是API 11+。

+3

是的,我的應用程序有分鐘版本API 7,但我使用兼容包 – crbin1

0

您需要使用LoaderManager和Loader進行遷移。

因爲大多數情況下都可能會被棄用。所以最好使用帶有LoaderManager和Loader的CursorLoader

您可以在下面的鏈接中找到示例項目,該項目獲取任何手機中安裝的應用程序列表。

https://github.com/alexjlockwood/AppListLoader.git

祝你好運..

相關問題