BaseAdapter 中如何通知数据库变化?

How to notify database change in BaseAdapter?

片段中有一个 ListView,我希望它在每次创建片段时显示从服务器(json 数组)下载的一些消息。下载后,我将消息放入 sqlite 数据库,然后使用 BaseAdapter.

在该 listView 中显示消息

但我必须知道 BaseAdapter 中的 getCount() 应该在 setAdapter() 之前 return;但是下载消息需要时间,直到下载消息我才知道计数。

所以我在片段中放了一个进度条,并尝试在消息下载并写入数据库后启动另一个片段和setAdapter()。问题是我如何知道消息何时下载并写入数据库?

使用 AsyncTask

class DownLoadMessage extends AsyncTask<String, Void, String> {

    @Override
    protected String doInBackground(String... params) {

        //here you download your message

        return "Executed";
    }

    @Override
    protected void onPostExecute(String result) {

       // and here you set your adapter

    }

    @Override
    protected void onPreExecute() {}

    @Override
    protected void onProgressUpdate(Void... values) {}
}