加载完成后不调用LoaderCallbacks.onLoadFinished()

时间:2015-07-14 17:37:41

标签: android android-loadermanager android-loader

我创建了一个来自AsyncTaskLoader的加载器。它在99%的情况下都可以工作,但是有一个边缘情况,LoaderCallbacks.onLoadFinished()成功返回后不会调用AsyncTaskLoader.loadInBackground()。我不知道边缘情况有什么不同,但我想不出任何原因导致加载器在这两个调用之间失败。有什么我可能做错了吗?

1 个答案:

答案 0 :(得分:0)

首先,运行Loader非常重要:

您可以通过activity.getLoaderManager().initLoader()方法首次运行它,但是您不能像这样第二次运行它。

您需要使用activity.getLoaderManager().restartLoader()方法进一步。您也可以从一开始就使用此方法,因为如果它尚未初始化,它将启动您的加载器。

强烈建议您在Activity onCreate方法中启动加载器。

如果您需要从其他地方启动加载程序,并且未发生对onLoadFinished的调用(例如,在您旋转屏幕后),请拨打getLoaderManager()中的onCreate来电话相反,它真的可以help