19

AndroidSDKを最新バージョンに更新したところstartManagingCursor()deprecated. 新しい CursorLoader.

private void fillData() {
    Cursor notesCursor = mDbHelper.fetchAllNotes();
    startManagingCursor(notesCursor);
    NoteAdapter notes = new NoteAdapter(this,  R.layout.notes_row, notesCursor);
    setListAdapter(notes);
}

では、startManagingCursor()古いコードですが、新しいコードが翻訳された場合、どのように見えるでしょうか?

4

1 に答える 1

16

まず、startManagingCursor()まだ動作します。メイン アプリケーション スレッドでデータベース I/O を実行するため、理想的ではありません。Android では、「非推奨」とは一般に、「使用をお勧めする、より良いと思われる何かがある」ことを意味します。そのため、アプリの開発サイクルでそれが理にかなっている場合は、移行を検討する必要があります。

第二に、Selvin が指摘したように、SDK は のLoader実装のみを提供しますContentProviderSQLiteを直接提供するプロジェクトがあります。Loader

第 3 に、コードの直接的な「変換」は実際にはありません。Loaderフレームワークは非同期でイベント駆動型ですが、コードはそうではありません。

一般的に言えば、Loaderメモを取得するのはあなたの責任であり、からが配信されたときに にListViewデータを入力します。onLoadFinished()CursorLoader

于 2012-04-13T19:20:25.167 に答える