Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android LoaderCallbacks.onLoadFinished()在加载完成后不被调用_Android_Android Loadermanager_Android Loader - Fatal编程技术网

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

Android LoaderCallbacks.onLoadFinished()在加载完成后不被调用,android,android-loadermanager,android-loader,Android,Android Loadermanager,Android Loader,我创建了一个从AsyncTaskLoader派生的加载程序。它99%的时间都能正常工作,但有一种边缘情况,即在AsyncTaskLoader.loadInBackground()成功返回后,不会调用LoaderCallbacks.onLoadFinished()。我不知道edge的情况有什么不同,但我想不出加载程序在这两个调用之间失败的原因。有什么我可能做错的吗?首先,如何运行加载程序很重要: 您可以通过activity.getLoaderManager().initLoader()方法第一次运

我创建了一个从
AsyncTaskLoader
派生的加载程序。它99%的时间都能正常工作,但有一种边缘情况,即在
AsyncTaskLoader.loadInBackground()
成功返回后,不会调用
LoaderCallbacks.onLoadFinished()
。我不知道edge的情况有什么不同,但我想不出加载程序在这两个调用之间失败的原因。有什么我可能做错的吗?

首先,如何运行加载程序很重要:

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

您需要使用
activity.getLoaderManager().restartLoader()
方法来获取更多信息。您也可以从一开始就使用此方法,因为如果尚未初始化加载程序,它将初始化加载程序

强烈建议在活动的
onCreate
方法中启动加载程序


如果您需要从其他地方启动加载程序,并且没有调用
onLoadFinished
(例如,在您旋转屏幕之后),请在
onCreate
中调用
getLoaderManager()
,它确实可以。

看看这一点,谢谢,但没有帮助:-/