OKA*_*OKA 128 android android-asynctask android-loadermanager
既然Honeycomb
又v4 Compatibility Library
可以使用AsyncTaskLoader
.据我所知,它AsyncTaskLoader
可以通过配置更改生存,如屏幕翻转.
是否建议使用AsyncTaskLoader
而不是AsyncTask
?是否LoaderManager
也参与其中?
但我没有找到任何关于如何正确使用的好例子AsyncTaskLoader
.文档也没有提供任何示例.谁能提供一些很好的例子.
Nik*_*kov 51
您可以查看兼容性库的源代码以获取更多信息.这是FragmentActivity
做什么的:
LoaderManager
的onRetainNonConfigurationInstance()
initLoader()
你的活动时踢右边的装载机您需要使用LoaderManager
to与加载器接口,并提供所需的回调以创建加载器并使用它们返回的数据填充视图.
一般来说,它应该比管理AsyncTask
自己更容易.但是,AsyncTaskLoader
文档记录不完整,因此您应该在文档中学习示例和/或在之后对代码进行建模CursorLoader
.
Hoa*_*ong 45
比较AsyncTaskLoader与AsyncTask时,您可能知道在旋转设备屏幕时,它可能会破坏并重新创建您的活动,以便清楚地让图像在网络事务进行时旋转您的设备:
AsyncTask将再次作为后台线程重新执行,之前的后台线程处理只是冗余和僵尸.
AsyncTaskLoader将根据之前在Loader Manager中注册的Loader ID重新使用,因此避免重新执行网络事务.
总之, AsyncTaskLoader可以防止重复后台线程并消除僵尸活动的重复.
Att*_*tif 11
AsyncTaskLoader执行相同的功能的AsyncTask,但好一点.它可以更轻松地处理Activity配置更改,并且它在Fragments和Activities的生命周期内运行.好消息是AsyncTaskLoader可以在任何使用AsyncTask的情况下使用.无论何时需要将数据加载到内存中以供Activity/Fragment处理,AsyncTaskLoader都可以更好地完成工作.
但是,使用AsyncTasks存在一些问题:
除了其他答案中描述的一些差异:
当使用AsyncTaskLoader过的AsyncTask:
AsyncTaskLoader使我们可以自由加载旧的缓存数据,直到返回新数据forceLoad()
我们可以设置AsyncTaskLoader的延迟,通过setUpdateThrottle()
它可以阻止对客户端的连续更新(Activity/Fragment)
如果AsyncTaskLoader具有共同的父活动并且从它开始,则可以将它们共享给多个片段getActivity().getSupportLoaderManager()
AsyncTaskLoaderLoaderManger
在其链接活动不再可用时被销毁.我们需要手动销毁AsyncTasks,如果它的调用者活动破坏了.这节省了我们编写所有清算内容的时间.AsyncTaskLoader可以很好地适应各自的生命周期.
因此,AsyncTaskLoader比AsyncTask更好.
归档时间: |
|
查看次数: |
48280 次 |
最近记录: |