2011-11-28 25 views

回答

5

除非你使用的是Honeycomb及其以上版本。 FragmentActivity包括管理裝載機所需的代碼,蜂窩前Activity沒有。

爲什麼你不想延長FragmentActivity

+0

由於數據量不斷增加,需要重構的大型Android 2.1應用程序越來越慢。我打算儘可能少地改變。謝謝你的明確答案。 –

0

從官方documentation

一個查詢ContentResolver的,並返回光標的裝載機。這個 類以標準的方式實現了Loader協議,用於查詢遊標,基於AsyncTaskLoader在後臺線程上執行遊標查詢,以便它不會阻塞應用程序的UI。

的CursorLoadeer類只是查詢ContentResolver的返回一個指針,讓您的活動類必須實現LoaderCallbacks覆蓋的方法,並在onCreateLoader返回CursorLoader()

public Loader<Cursor> onCreateLoader(int id, Bundle args) { 
     String select = "((" + Contacts.DISPLAY_NAME + " NOTNULL) AND (" 
       + Contacts.HAS_PHONE_NUMBER + "=1) AND (" 
       + Contacts.DISPLAY_NAME + " != ''))"; 

     return new CursorLoader(getActivity(), Contacts.CONTENT_URI, 
       CONTACTS_SUMMARY_PROJECTION, select, null, 
       Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC"); 
    } 

我不知道getCursorLoader ().init(...)你說的是,如果你指的是getLoaderManager()它可以在Activity類中使用,因爲API 11

+0

對不起!我的錯。我的意思是getLoaderManager()。在使用兼容性庫時,這在Activity子類中不可用。我該如何創建一個呢? –

+0

@ Ya.Perelman你知道如何在活動中使用getLoaderManager嗎? – Hunt

相關問題