片段
中有一个ListView,我希望它在每次创建片段时显示从服务器(json数组)下载的一些消息。下载后,我将消息放入sqlite数据库中,然后使用BaseAdapter在该listView中显示消息。
但是我必须知道 BaseAdapter 中的 getCount() 应该在 setAdapter() 之前返回什么;但是下载消息需要时间,在下载消息之前我不会知道计数。
所以我在片段中放了一个进度条,并尝试在消息下载并写入数据库后启动另一个片段和 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) {}
}