0

在按钮的单击处理程序中,我从内容提供者(使用getContentResolver().query(...))加载一些数据,然后在网络请求中发送该数据。由于使用这种方法在主线程上进行查询,因此我想将其移出主 UI 线程。

onLoadFinished()我想我可以使用 LoaderManager,并onLoadFinished()在例如屏幕方向。

那么,如何将 LoaderManager 用于我只想发生一次的查询?

4

2 回答 2

0

在你的onLoadFinished(),你可以打电话getLoaderManager().destroyLoader(loaderId)(或getSupportLoaderManager()如适用)。这将阻止加载程序自动重新加载。您可能还需要确保您调用initLoader的位置不会再次执行(onSaveInstanceState例如通过保存布尔变量)。

于 2013-08-26T04:50:48.190 回答
0

调用LoaderManager#initLoader()您的Activity#onCreate()方法将创建一个新的Loader并强制执行新的加载,或者重用现有的Loader并提供最近查询的数据(如果存在)。因此,只要您LoaderManager正确使用(即开发人员网站在文档中推荐的方式),您应该不会有任何问题。

于 2013-08-26T04:32:00.263 回答