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