Java 适配器的内容已更改,但ListView未收到通知。确保未修改适配器的内容

Java 适配器的内容已更改,但ListView未收到通知。确保未修改适配器的内容,java,android,listview,adapter,Java,Android,Listview,Adapter,我有时会犯这个错误 适配器的内容已更改,但ListView未收到 通知。确保未修改适配器的内容 从后台线程 但我不明白,因为我运行到UI线程。如果你有一个想法,thks class LoadingProducts extends AsyncTask<Void, Void, Void> { @Override protected void onPreExecute() { super.onPreExecute(); loading_in

我有时会犯这个错误

适配器的内容已更改,但ListView未收到 通知。确保未修改适配器的内容 从后台线程

但我不明白,因为我运行到UI线程。如果你有一个想法,thks

class LoadingProducts extends AsyncTask<Void, Void, Void> {

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        loading_indicator.show();
    }

    @Override
    protected void onPostExecute(Void result) {
        super.onPostExecute(result);

        if (isAdded()) {
            getActivity().runOnUiThread(new Runnable() {
                @Override
                public void run() {

                    mAdapter.setData(listProducts);
                    mAdapter.notifyDataSetChanged();

                    loading_indicator.hide();
                }
            });
        }
    }

    @Override
    protected Void doInBackground(Void... params) {
        get_data();
        return null;
    }
}

为了使这个问题更清楚,请添加一个获得此错误的特定条件。例如,发生此错误的原因是什么?在发生此错误之前,您采取了哪些步骤?你的程序编译吗?这些东西将帮助其他人更准确地解决您的问题。数据来自sqlite数据库,我正在查询中搜索数据。你建议我加载所有数据,然后过滤?可以筛选大数据。是的,但我在搜索之前不会在listview中加载数据。这不是listview中的搜索,仅显示结果。否,如果用户搜索,则我的listview仅显示结果我使用BaseAdapter,因为我的光标已转换为对象,并且在此搜索之前已进行筛选。这是一个包含许多数据的复杂查询。
mHandler.postDelayed(new Runnable() {
        @Override
        public void run() {

           if (mQueryStringSearch.length() > 2)
               new LoadingProducts().execute();


        }
    }, 300);