如何在BaseAdapter中通知数据库更改?

时间:2016-03-22 07:06:28

标签: android sqlite android-fragments android-sqlite

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

但我必须知道BaseAdapter中的getCount()应该在setAdapter()之前返回;但下载邮件需要时间,在下载邮件之前我不会知道计数。

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

1 个答案:

答案 0 :(得分:1)

使用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) {}
}