fhu*_*cho 13 android android-3.0-honeycomb android-loader
在后台执行某些操作然后更新UI很难在Android中正确实现.它设计得很糟糕.典型的例子是AsyncTask,它从Web获取内容并显示结果.这有两个问题:
AsyncTask引用了Activity(因为它需要更新其UI).屏幕方向更改后,重新启动活动.但是AsyncTask仍然引用旧的被破坏的Activity,因此无法更新新Activity的UI.
这可能导致OutOfMemoryException.想象一下,你有一个包含大量位图的Activity,并启动一些AsyncTask.您按BACK(活动已完成)但AsyncTask仍在运行,并且因为它引用了Activity,所以带有位图的Activity仍在内存中.重复此操作(开始活动和返回),你的力量迟早会关闭.
这可以解决,但它太复杂了.在一个Activity中,我有3个不同的AsyncTasks,每个都可以同时在多个实例中运行.正确实现这一点令人沮丧.代码变得非常难以理解和调试.
Honeycomb Loaders可以解决这个问题吗?有没有办法在pre-Honeycomb Android版本中使用它们?
是的,根据我的经验,Loader他们似乎解决了人们遇到的常见问题AsyncTasks和配置变化.
我认为Google表示片段静态库也会包括在内Loaders,所以是的,它们应该在库发布时也能倒退.
| 归档时间: |
|
| 查看次数: |
2583 次 |
| 最近记录: |