mku*_*ech 15 java android simplecursoradapter android-fragments android-loadermanager
我正在开发一个针对API级别8(2.2,Froyo)的Android应用程序.我正在使用a ContentProvider,这很简单,我正在使用SimpleCursorAdapter填写我的列表视图,但我在SimpleCursorAdapter的文档中注意到,不推荐使用以下注释的无标记构造函数:
不推荐使用此构造函数.不鼓励使用此选项,因为它会导致在应用程序的UI线程上执行Cursor查询,从而导致响应能力较差甚至应用程序无响应错误.或者,使用带有CursorLoader的LoaderManager.
由于我的目标是API级别8,因此a LoaderManager不依赖于Activity.FragmentActivity兼容包中的类执行此操作,但我没有使用Fragments.
我的问题是:我应该如何LoaderManager/CursorLoader在针对11级以前API级别的应用中使用它?我是否被迫转换为Fragments或者我应该恢复到已弃用的SimpleCursorAdapter构造函数(但是使用一个AsyncTask来保持UI线程友好,这CursorLoader应该是什么)?
Ale*_*ood 23
我LoaderManager在这篇博文中写了相当广泛的文章.看看它,让我知道它是否有用!:)
当然,绝对是肯定的LoaderManager.在CursorLoader类卸载一个线程负载数据的工作,并保持在短期活动的刷新事件,如取向改变持久数据.除了执行初始查询之外,还会在您请求的数据集中CursorLoader注册a ContentObserver,并forceLoad()在数据集更改时自行调用,从而自动更新.这非常方便,因为您不必担心自己执行查询.当然可以利用AsyncTask保持你的应用程序UI线程友好,但它将涉及更多代码...并实现你的类,以便它,例如,保持加载Cursor过程Activity将不简单.最重要的是,LoaderManager/Loader它将自动为您执行此操作,并Cursor根据Activity生命周期正确创建和关闭.
要LoaderManager/CursorLoader在针对11之前API级别的应用中使用,只需使用FragmentActivity兼容包中的类即可.A FragmentActivity只是一个Activity并且已经为Android兼容性支持创建,并且不需要Fragment在您的应用程序中使用s.只需使用getSupportLoaderManager()而不是getLoaderManager()你应该全部设置.当然,您可以FragmentActivity为每个屏幕实现父级,并让它在a中显示其布局Fragment(通过FragmentActivity.getSupportFragmentManager()在Activity的onCreate()方法中使用).如果您决定优化平板电脑的应用程序,此设计可能会更轻松地过渡到多窗格布局.这也是一个很好的学习经历:).
这也是一个非常好的教程.尝试并按照自己的方式工作,如果您有任何其他问题,请随时发表评论.
| 归档时间: |
|
| 查看次数: |
15011 次 |
| 最近记录: |