我试图弄清楚如何在 Android 3.0 中使用 Loaders
但似乎无法让它工作。文档仅描述了使用 CursorLoader
但我使用的是 AsyncTaskLoader
。
从文档看来,您应该只需要实现 AsyncTaskLoader.loadInBackground()
但它永远不会在 getLoaderManager().initLoader()
之后被调用,然后创建回调中的加载器。
我可以看到调试消息说 Created new loader LoaderInfo{4040a828 #0 : ArticleDataLoader{4036b350}}
所以看起来它创建成功了。
是否有可能加载器当前在 SDK 中损坏,或者在创建加载器后需要调用某些方法? (他们在 CursorLoader
示例中没有这样做)。
编辑:似乎在从 initLoader()
返回的加载器上调用 forceLoad()
至少会开始加载,但这意味着您无法正确处理旋转:(
最佳答案
Dianne Hackborn 在 bug tracker 上回复了我们,并推荐我们引用静态库实现。 CursorLoader 正在执行 forceLoad() 这就是它工作的原因。
请参阅我附加的类(class),以了解在错误跟踪器的大多数简单情况下为您处理此问题的类(class):http://code.google.com/p/android/issues/detail?id=14944
关于android - Android Honeycomb 中的加载程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4920930/