我有一个AsyncTask,它使用轮询队列来查看是否有新对象到达。当它检测到新对象时,我将其收集为字符串信息,然后发布publishProgress(info)。在onProgressUpdate中,它将字符串添加到列表中。我遇到的问题是该程序永远不会进入onProgressUpdate。我在调试器中逐步进行了调试,然后看到它称为publishProgress,但是它从未进入onProgress更新。看起来像这样:
@Override
protected void onProgressUpdate(String... values) {
messageQueue.add(displayName + " : " + values[0]); //I have a breakpoint here that the program never hits.
((BaseAdapter) getListAdapter()).notifyDataSetChanged();
super.onProgressUpdate(values);
}
@Override
protected Void doInBackground(Void... params) {
while (true) {
Packet p = pc.pollResult();
if(p != null){
String body = ((Message) p).getBody(); //I have a breakpoint here that the program hits only when a new object is in the queue
publishProgress(body);
}
}
}
最佳答案
我遇到了一个问题,那就是它没有被调用,但是我只是注意到我把错误的类放在了错误的地方。当然,它应该位于AsyncTask块中,但是我已经在该块之外创建了它
关于android - publishProgress不调用onProgressUpdate,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7194070/