我尝试使用AsyncTaskLoader
实现一些背景计算,正如我认为这是正确的方法。
计算在不同的线程中完成,UI可以保持平滑和黄油。
但相反的情况发生了。
我的UI有一些滑动面板。用户将它们打开,在那里选择一些东西,当滑动面板滑回原位时,后台任务正在执行主显示的计算,当滑动面板向后移动时,该显示再次显示。
现在:当后台任务完成并且AsyncTaskLoader.loadInBackground()
完成时,我的片段的onLoadFinished
回调方法被触发 - 它将主要内容的适配器设置为新结果并触发{{ 1}}这个适配器。
每当我的背景计算很快时,滑动面板还没有回到缩回的位置,更新适配器的数据会使面板移动“挂起”!
因此:通过使用后台任务,我实际上搞乱了以前流畅的UI。
你们如何处理类似的事情?