android - 在手机应用程序上使用 Android CursorLoaders 和其他 Honeycomb 功能 (Froyo)

标签 android cursor android-3.0-honeycomb

我一直在使用 Froyo(我的手机版本)开发手机应用程序。我想切换到在项目中包含 Honeycomb。

我已将 Android 兼容包导入到我的项目中。我当前的应用程序从 SQLite 数据库读取。从所述数据库加载图库以及各种 GridView 和 ListView。我不知道下一步该做什么。我是否要将 Activity 切换到 FragmentActivities?如何从当前的游标转到 CursorLoaders?这对我用于加载图库和网格/ ListView 的自定义适配器有何影响?等等...

非常感谢您提供的任何帮助和建议。我很难掌握如何转换我所拥有的并让两者共存。我真的很想“以正确的方式”做到这一点。

编辑:我意识到这是一个相当广泛的“问题”。因此,让我们专注于 Cursor 到 CursorLoader 的事情。我将为其他项目创建新问题。

最佳答案

通过兼容性库,我使用了针对 2.1 的 CursorLoader 和 Fragments。

如果有 ContentProvider 支持,加载器就非常简单, fragment 需要使用 FragmentActivity(也许还有 LoaderCursors)。

但是,加载器确实需要 LoaderManager.LoaderCallbacks 接口(interface)。

加载器有一个生命周期,我手头没有代码,但它是这样的。

LoaderManager.InitLoader(USER_SPECIFIED_ID_OF_LOADER);

---- 最终调用 --->

Loader<Cursor> onCreateLoader(int id, Bundle args) {
      return new CursorLoader(getActivity(), baseUri,
             CONTACTS_SUMMARY_PROJECTION, select, null,
            Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC");
}

这是您的 Loader 执行加载程序操作的地方,我只在代码中使用了 CursorLoader,因此我不了解更多详细信息。

当加载程序完成时,将调用最终回调。

public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
    //Do whatever you want with your cursor here.
}

也就是说,他们工作得很好并且按预期完成了工作,竖起两个大拇指。

*编辑:还有一个 onLoaderRestarted() 可能会在您重新启动加载程序时被调用,但不确定何时调用它。

关于android - 在手机应用程序上使用 Android CursorLoaders 和其他 Honeycomb 功能 (Froyo),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6644006/

相关文章:

android - 在 Android Honeycomb 中加速 Gallery 小部件的技巧

android - OutOfMemory 错误,但有可用内存

java - Android Studio Java JDK环境路径

android - 布局和 fragment 布局之间的区别

android - 通过 USB : The device is temporarily restricted 安装应用程序

css - 选择文本时默认鼠标光标?

android - 在 Android Honeycomb 中实现 Actionbar

android - 上传Apk到华为AppGallery失败

sql-server - 使用游标的存储过程速度非常慢

linux - 需要在Linux帧缓冲区中绘制光标