19

我将我的 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()旧的,如果新代码被翻译,它会是什么样子?

4

1 回答 1

16

首先,startManagingCursor()仍然有效。这并不理想,因为它在主应用程序线程上执行数据库 I/O。在 Android 中,“已弃用”通常表示“我们认为我们建议您使用的其他东西更好”。因此,当它在您的应用程序的开发周期中有意义时,您应该考虑迁移。

其次,正如 Selvin 所指出的,SDK 仅提供了Loader一个ContentProvider. 我有一个直接Loader为 SQLite提供的项目。

第三,您的代码确实没有直接的“翻译”。该Loader框架是异步的和事件驱动的,而您的代码不是。

一般来说,您Loader将负责获取便笺,并且ListViewonLoadFinished()CursorLoader.

于 2012-04-13T19:20:25.167 回答