假设我有包含列表的主要活动(不管它是ListView还是RecyclerView)。每次创建活动时,它在onResume方法中都有一个来自parse的数据查询。事情是我使用调用findInBackground方法的解析查询,所以我在主活动中的列表总是为零,因为在构建活动时,查询还没有完成。当我使用find(而不是在后台找到)时,我在android studio logcat中看到了一句话,如下所示:“对主线程进行多次操作”。
你认为我应该怎么做? 提前谢谢你
答案 0 :(得分:2)
像这样的扩展操作应该在后台的单独线程上完成,因此主(动画)线程不会被阻止,导致你的应用程序滞后。 //The create method in controller
public function create()
{
$provinces=Province::lists('province', 'id')->all();
$cities=City::lists('city', 'id');
return view('profile.create', compact('provinces', 'cities'));
}
方法与findInBackground()
的方法相同,但在背景中的不同主题上进行操作'。作业完成后,它会调用find()
并传递结果,以便您更新列表。
直到完成此操作,您可以在空列表前显示中间FindCallback
,以指示数据正在加载。