我正在使用游标加载器从我的内容提供商加载数据,而不是总是得到结果。在我对内容加载器的初始调用中,它返回正确的结果:
getSupportLoaderManager().restartLoader(
LOADER_LOCATION_INFO, null, this);
然而,当我再次运行此查询时(使用上面相同的代码),我没有得到任何结果。不调用加载程序回调。
public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
switch(arg0){
case (LOADER_LOCATION_INFO):
return new CursorLoader(this,
//my query
}
return null;
}
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor arg2) {
switch (loader.getId()) {
case (MY_CASE):
doSomething(arg2);
break;
}
}
@Override
public void onLoaderReset(Loader<Cursor> arg0) {
// TODO Auto-generated method stub
};
我不知道它是否重要,但我也是从这个活动中的一个片段调用loaderManager。这些查询工作正常。 什么会导致这个?任何帮助将不胜感激。
答案 0 :(得分:3)
我的问题在于加载程序ID。我有几个片段和父活动的LoaderCallbacks。我使用静态最终int来声明每个片段/活动中的ID。我使用相同的ID。我将所有ID移动到父活动并使它们成为唯一。这解决了这个问题。