如果LoadManager中的数组为空,则删除缓存数据

时间:2017-06-06 10:14:32

标签: java android android-studio

我有一个填充我的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()的原因。我无法确定删除缓存的位置或其导致的任何内容。提前感谢您的帮助。

0 个答案:

没有答案