这个问题错了所以我把它编辑为空白
答案 0 :(得分:1)
你的getContacts AsyncTask在另一个线程中运行(如词源所暗示的那样异步)。您的列表在该线程完成后更新,但您的日志记录与AsyncTask并行发生,因此在您记录大小时,列表 不包含任何内容。稍后,当您看到列表中显示的内容时,AsyncTask就会结束。
继承人可视化
主题:用户界面 ------------------------------------- ---------------------- ASYNCTASK
............... | .. ArrayList mNewList = new ...;
............... | .. mNewList = mListData.getContacts();
............... | .. AsyncTask :: onBeforeExecute()
............... | .................................................. ............................ | .. AsyncTask :: doInBackground启动
............... | .. Log.i(mNewList.size()); .................................... | .. (仍在工作)
............... | .................................................. ............................ | .. AsyncTask :: doInBackground返回
............... | .. AsyncTask :: onPostExecute
............... | .. mContacts.add(...)......
............... | ...