Android 加载程序并非始终启动onLoadFinished回调
我正在使用AsyncTaskLoader从web api获取数据,但由于某种原因,装载程序并没有总是启动onLoadFinished回调 这是我片段中的snippt,我是如何使用加载程序的。我总是重新启动loader restartLoader(…).forceload()以更新结果。加载程序基于用户交互触发Android 加载程序并非始终启动onLoadFinished回调,android,loader,asynctaskloader,Android,Loader,Asynctaskloader,我正在使用AsyncTaskLoader从web api获取数据,但由于某种原因,装载程序并没有总是启动onLoadFinished回调 这是我片段中的snippt,我是如何使用加载程序的。我总是重新启动loader restartLoader(…).forceload()以更新结果。加载程序基于用户交互触发 private void getData() { Bundle bundle = new Bundle(); bundle.putParcelable("userInput
private void getData() {
Bundle bundle = new Bundle();
bundle.putParcelable("userInput", mUserInputData);
getLoaderManager().restartLoader(CARS_LOADER_ID, bundle, carsLoaderListener).forceLoad();
}
private LoaderManager.LoaderCallbacks<List<Car>> carsLoaderListener = new LoaderManager.LoaderCallbacks<List<Car>>()
{
@Override
public Loader<List<Car>> onCreateLoader(int id, Bundle args)
{;
return new CarsLoader(getActivity(), (UserInput)args.get("userInput"));
}
@Override
public void onLoadFinished(Loader<List<Car>> loader, List<Car> data)
{
// This is not allways get called
setData(data);
}
@Override
public void onLoaderReset(Loader<List<Car>> loader)
{
}
};
private void getData(){
Bundle=新Bundle();
bundle.putParcelable(“用户输入”,mUserInputData);
getLoaderManager();
}
私有LoaderManager.LoaderCallbacks carsLoaderListener=新LoaderManager.LoaderCallbacks()
{
@凌驾
公共加载器onCreateLoader(int-id,Bundle-args)
{;
返回新的CarsLoader(getActivity(),(UserInput)args.get(“UserInput”);
}
@凌驾
public void onLoadFinished(加载程序,列表数据)
{
//这不是所有人都能打电话的地方
setData(数据);
}
@凌驾
公共void onLoaderReset(加载器)
{
}
};
即使加载程序已经在运行,也可以像这样重新启动它吗?这会导致装载机卡住吗?有时加载程序启动正常并且正在工作,但它启动onLoadFinished回调。当加载程序像这样被阻塞时,重新启动片段/关闭应用程序可以解决问题。我也遇到过这种问题。我不确定它在
LoaderManager.RestartLoader
中的bug是否对我有用,除了getLoaderManager().destroyLoader(Loader_id)
和getLoaderManager().initLoader()
之外
希望这有帮助。我也遇到过这种问题。我不确定它在
LoaderManager.RestartLoader
中的bug是否对我有用,除了getLoaderManager().destroyLoader(Loader_id)
和getLoaderManager().initLoader()
之外
希望这有帮助。谢谢!看起来可能会有帮助。不过需要做更多的测试。还是很奇怪的问题,我想是LoaderManager中的bug…谢谢!看起来可能会有帮助。不过需要做更多的测试。还是很奇怪的问题,我想是LoaderManager中的bug。。。