Answers:
您可以查看兼容性库的源代码以获取更多信息。什么FragmentActivity
是:
LoaderManager
的onRetainNonConfigurationInstance()
initLoader()
活动” 时,踢正确的装载机您需要使用LoaderManager
与加载程序进行接口,并提供所需的回调以创建加载程序,并使用它们返回的数据填充视图。
通常,它应该比AsyncTask
自己管理要容易。但是,该AsyncTaskLoader
文档的记录不完全正确,因此您应该在docs中研究示例和/或在之后对代码进行建模CursorLoader
。
AsyncTaskLoader执行的相同的功能的AsyncTask,但好一点。它可以更轻松地处理活动配置更改,并且在“片段和活动”的生命周期内运行。令人高兴的是,可以在使用AsyncTask的任何情况下使用AsyncTaskLoader。任何时候需要将数据加载到内存中以便活动/片段进行处理时,AsyncTaskLoader都能做得更好。
不过,使用AsyncTasks存在一些问题:
除其他答案中所述以外,其他一些区别:
当使用AsyncTaskLoader过的AsyncTask:
AsyncTaskLoader使我们可以自由加载旧的缓存数据,直到由forceLoad()
我们可以设置延迟AsyncTaskLoader通过setUpdateThrottle()
它可以防止连续更新客户端(活动/片段)
如果AsyncTaskLoader具有共同的父级活动并且是从其开始的,则可以共享给多个片段getActivity().getSupportLoaderManager()
LoaderManger
当AsyncTaskLoader的链接活动不再可用时,将被销毁。而如果调用者活动销毁,我们需要手动销毁AsyncTasks。这节省了我们编写所有清算资料的时间。AsyncTaskLoader在各自的生命周期中运行良好。
因此,AsyncTaskLoader比AsyncTask更好。
AsyncTaskLoader
,并且当更多的开发人员开始使用它时,将会有更多的示例出现。