<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                > 編寫:[kesenhoo](https://github.com/kesenhoo) - 原文:[http://developer.android.com/training/load-data-background/setup-loader.html](http://developer.android.com/training/load-data-background/setup-loader.html) CursorLoader通過ContentProvider在后臺執行一個異步的查詢操作,并且返回數據給調用它的[Activity](# "An activity represents a single screen with a user interface.")或者FragmentActivity。這使得[Activity](# "An activity represents a single screen with a user interface.") 或者 FragmentActivity 能夠在查詢任務正在執行可以繼續與用戶進行其他的交互。 ### 定義使用CursorLoader的[Activity](# "An activity represents a single screen with a user interface.") 為了在[Activity](# "An activity represents a single screen with a user interface.")或者FragmentActivity中使用CursorLoader,它們需要實現[LoaderCallbacks](#)接口。CursorLoader會調用LoaderCallbacks定義的這些回調方法與這些類進行交互;這節課與下節課會詳細介紹每一個回調方法。 例如,下面演示了FragmentActivity如何使用CursorLoader。 ~~~ public class PhotoThumbnailFragment extends FragmentActivity implements LoaderManager.LoaderCallbacks<Cursor> { ... } ~~~ ### 初始化查詢 為了初始化查詢,需要執行[LoaderManager.initLoader()](#))。這個方法可以初始化后臺查詢框架。你可以在用戶輸入查詢條件之后觸發初始化的操作,如果你不需要用戶輸入數據作為查詢條件,你可以觸發這個方法在`onCreate()`或者`onCreateView()`。例如: ~~~ // 標識一個特定的Loader加載器來使用這個組件 private static final int URL_LOADER = 0; ... /** * 當系統已經準備好顯示Fragment時, * 這里顯示Fragment的布局 */ public View onCreateView( LayoutInflater inflater, ViewGroup viewGroup, Bundle bundle) { ... /* *初始化一個CursorLoader. URL_LOADER 值最終會被傳遞到 * onCreateLoader(). */ getLoaderManager().initLoader(URL_LOADER, null, this); ... } ~~~ > **Note:**`getLoaderManager()`僅僅是在Fragment類中可以直接訪問。為了在FragmentActivity中獲取到LoaderManager,需要執行`getSupportLoaderManager()`. ### 開始查詢 一旦后臺任務被初始化好,它會執行你實現的回調方法[onCreateLoader()](#))。為了啟動查詢任務,會在這個方法里面返回CursorLoader。你可以初始化一個空的CursorLoader然后使用它的方法來定義你的查詢條件,或者你可以在初始化CursorLoader對象的時候就同時定義好查詢條件: ~~~ /** * 系統在完成Loader的初始化并且準備好查詢的時候會回調這個方法。 * 這個通常在initLoader()方法被調用發生。包含loaderID值的參數 * 通過initLoader()方法的傳遞得到。 */ @Override public Loader<Cursor> onCreateLoader(int loaderID, Bundle bundle) { /* * 通過加載器ID執行創建加載器動作 */ switch (loaderID) { case URL_LOADER: // Returns a new CursorLoader return new CursorLoader( getActivity(), // 父Activity上下文 mDataUrl, // 要查詢的表 mProjection, // 要返回的Projection null, // 沒有條件從句 null, // 沒有條件參數 null // 默認排序 ); default: // 一個非法的id傳入 return null; } } ~~~ 一旦后臺查詢任務獲取到了這個Loader對象,就開始在后臺執行查詢的任務。當查詢完成之后,會執行[onLoadFinished()](#))這個回調函數,關于這些內容會在下一節講到。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看