我有一个填充我的RecyclerView的数组。我使用LoadManager从数据库中获取数据,当我的数组不为空时,一切正常。
这是我调用LoaderManager的代码。
getActivity().getSupportLoaderManager().restartLoader(0, null,loaderCallbacks);`
private LoaderManager.LoaderCallbacks<ArrayList<BidCategoryItemsClass>> loaderCallbacks = new LoaderManager.LoaderCallbacks<ArrayList<BidCategoryItemsClass>>() {
@Override
public Loader<ArrayList<BidCategoryItemsClass>> onCreateLoader(int id, Bundle args) {
return new BidCategoryItemsLoader(getActivity());
}
@Override
public void onLoadFinished(Loader<ArrayList<BidCategoryItemsClass>> loader, ArrayList<BidCategoryItemsClass> data) {
adapter.swapData(data);
}
@Override
public void onLoaderReset(Loader<ArrayList<BidCategoryItemsClass>> loader) {
}
};
public static class BidCategoryItemsLoader extends AsyncTaskLoader<ArrayList<BidCategoryItemsClass>> {
public BidCategoryItemsLoader(Context context) {
super(context);
}
@Override
public void onStartLoading() {
forceLoad();
}
@Override
public ArrayList<BidCategoryItemsClass> loadInBackground() {
getData();
ArrayList posting_items = new ArrayList<>();
if (items!=null) {
for (int i = 0; i < items.length; i++) {
BidCategoryItemsClass data = new BidCategoryItemsClass();
data.set_item_name(items[i]);
data.set_image(image[i]);
posting_items.add(data);
}
}
return posting_items;
}
@Override
public void deliverResult(ArrayList<BidCategoryItemsClass> data) {
super.deliverResult(data);}
}`
我的问题是如何删除LoadManager输出的缓存数据,因为当数组结果为空时,它会保留最新数据(当我单击gridview的另一项时)。我在每个项目中都使用了这个代码,这就是我使用restartLoader()的原因。我无法确定删除缓存的位置或其导致的任何内容。提前感谢您的帮助。