Android SDK
を最新バージョンに更新しましたが、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()
は古いですが、翻訳された場合、新しいコードはどのようになりますか?
まず、startManagingCursor()
は引き続き機能します。メインアプリケーションスレッドでデータベースI/Oを実行するという点で、理想的ではありません。 Androidでは、「非推奨」とは通常、「使用することをお勧めするより良いと思われるものが他にある」ことを意味します。そのため、アプリの開発サイクルで意味がある場合は、移行を検討する必要があります。
次に、Selvinが指摘したように、SDKはLoader
のContentProvider
実装のみを提供します。私は SQLiteにLoader
を提供するプロジェクト を直接持っています。
第三に、あなたのコードには実際にはまっすぐな「翻訳」はありません。 Loader
フレームワークは非同期でイベント駆動型ですが、コードはそうではありません。
一般的に言って、あなたのLoader
はメモをフェッチする責任があり、あなたがListView
から配達されたとき、あなたはonLoadFinished()
にあなたのCursor
を入力しますLoader
。