这个问题是错误的,所以我把它编辑为空白
发布于 2015-08-04 22:41:24
您的getContacts AsyncTask在另一个线程中运行(正如词源所暗示的那样是异步的)。您的列表在该线程结束后更新,但是您的日志记录与AsyncTask并行发生,因此在您记录大小时,列表不包含任何内容。稍后,当AsyncTask完成时,您就会看到列表中显示的内容。
这是一个可视化的图像
线程:UI
.| ..ArrayList mNewList =新建...;
.| ..mNewList = mListData.getContacts();
.| ..AsyncTask::onBeforeExecute()
.| ..............................................................................| ..AsyncTask::doInBackground启动
.| ..Log.i(mNewList.size());....................................| ..(仍在工作)
.| ..............................................................................| ..AsyncTask::doInBackground返回
.| ..AsyncTask::onPostExecute
.| ..mContacts.add( ... ) ...
.| ...
https://stackoverflow.com/questions/31811361
复制相似问题